:root {
  --blue: #0068b7;
  --blue-deep: #004b8d;
  --blue-ink: #123a55;
  --blue-pale: #eaf5fc;
  --orange: #f28a21;
  --orange-deep: #df6f0d;
  --green: #16a75f;
  --ink: #173447;
  --muted: #607886;
  --white: #fff;
  --shadow: 0 20px 55px rgba(11, 56, 87, 0.16);
  --max: 1240px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  margin: 0;
  padding-bottom: 86px;
  overflow-x: hidden;
  color: var(--ink);
  background: #fff;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", sans-serif;
  -webkit-font-smoothing: antialiased;
}

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

svg {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.announcement {
  position: relative;
  z-index: 20;
  color: #fff;
  background: var(--blue-deep);
}

.announcement__inner {
  display: flex;
  width: min(calc(100% - 40px), var(--max));
  min-height: 36px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.announcement p {
  margin: 0;
}

.announcement p span {
  display: inline-block;
  margin-right: 10px;
  padding: 3px 11px;
  border-radius: 999px;
  color: var(--blue-deep);
  background: #fff;
  font-size: 11px;
}

.announcement p b {
  font-weight: inherit;
  white-space: nowrap;
}

.announcement ul {
  display: flex;
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.announcement li::before {
  content: "✓";
  margin-right: 6px;
  color: #87dbff;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  height: 88px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 4px 18px rgba(12, 54, 82, 0.08);
  transition: box-shadow 0.25s ease;
}

.site-header.is-scrolled {
  position: sticky;
  top: 0;
  box-shadow: 0 8px 28px rgba(12, 54, 82, 0.15);
}

.site-header__inner {
  display: flex;
  width: min(calc(100% - 40px), 1380px);
  height: 100%;
  margin: 0 auto;
  align-items: center;
}

.brand {
  display: flex;
  width: 266px;
  flex-direction: column;
  align-items: flex-start;
}

.brand img {
  display: block;
  width: auto;
  height: 60px;
}

.header-contact {
  display: flex;
  height: 100%;
  margin-left: auto;
  align-items: center;
  gap: 18px;
}

.header-contact__phone {
  text-align: center;
}

.header-contact__phone > span {
  display: block;
  margin-bottom: 2px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.header-contact__phone a {
  display: flex;
  color: var(--blue-deep);
  align-items: center;
  font-family: Arial, sans-serif;
  font-size: 23px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.header-contact__phone svg {
  width: 19px;
  margin-right: 5px;
  fill: currentColor;
  stroke: none;
}

.hero {
  position: relative;
  min-height: calc(100vh - 124px);
  overflow: hidden;
  background: #f6f2e9;
}

.hero__visual,
.hero__shade {
  position: absolute;
  inset: 0 0 114px;
}

.hero__visual {
  background-image: url("assets/hero-estate-sorting.jpg");
  background-position: center center;
  background-size: cover;
  transform: scale(1.015);
  animation: hero-settle 1.4s ease-out forwards;
}

.hero__visual--souzoku {
  background-image: url("assets/hero-akiya-cleanout.jpg");
}

.hero__visual--gomiyashiki {
  background-image: url("assets/hero-gomiyashiki-cleanup.jpg");
}

.hero__visual--kaitai {
  background-image: url("assets/hero-kaitai-removal.jpg");
}

.hero__visual--sokujitsu {
  background-image: url("assets/hero-sokujitsu-moving.jpg");
}

.hero__shade {
  background:
    linear-gradient(90deg, rgba(252, 250, 244, 0.99) 0%, rgba(252, 250, 244, 0.95) 31%, rgba(252, 250, 244, 0.62) 47%, rgba(252, 250, 244, 0.02) 68%),
    linear-gradient(0deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.08));
}

.hero__ai-note {
  position: absolute;
  right: 12px;
  bottom: 122px;
  z-index: 2;
  margin: 0;
  font-size: 9px;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.72);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
  pointer-events: none;
}

.hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  width: min(calc(100% - 40px), var(--max));
  min-height: 690px;
  margin: 0 auto;
  padding: 44px 0 64px;
  align-items: center;
}

.hero__content {
  width: min(650px, 53vw);
  opacity: 0;
  transform: translateY(12px);
  animation: content-in 0.8s 0.15s ease-out forwards;
}

.area-label {
  display: inline-flex;
  padding: 7px 15px 7px 11px;
  border: 1px solid rgba(0, 104, 183, 0.28);
  border-radius: 999px;
  color: var(--blue-deep);
  background: rgba(255, 255, 255, 0.82);
  align-items: center;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  backdrop-filter: blur(7px);
}

.area-label svg {
  width: 16px;
  margin-right: 6px;
  fill: currentColor;
  stroke: none;
}

.area-label span {
  margin-left: 9px;
  padding-left: 9px;
  border-left: 1px solid #b8ccd9;
}

.hero__eyebrow {
  margin: 18px 0 4px;
  color: var(--orange-deep);
  font-size: clamp(17px, 1.45vw, 21px);
  font-weight: 800;
  letter-spacing: 0.08em;
}

.hero h1 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(42px, 4.25vw, 66px);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.25;
  text-shadow: 0 2px 12px rgba(255, 255, 255, 0.6);
}

.hero h1 strong {
  position: relative;
  color: var(--blue);
  font-size: 1.03em;
  font-weight: 700;
}

.hero h1 strong::after {
  content: "";
  position: absolute;
  right: -2px;
  bottom: 3px;
  left: -1px;
  z-index: -1;
  height: 13px;
  border-radius: 2px;
  background: rgba(255, 190, 77, 0.58);
}

.hero__lead {
  margin: 16px 0 18px;
  color: #3f5968;
  font-size: clamp(14px, 1.15vw, 16px);
  font-weight: 600;
  line-height: 1.9;
}

.benefit-list {
  display: flex;
  width: 100%;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}

.benefit-list li {
  display: flex;
  min-width: 0;
  padding: 0 13px;
  border-right: 1px solid rgba(25, 71, 98, 0.18);
  align-items: center;
  gap: 7px;
  color: #425c6a;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.benefit-list li:first-child {
  padding-left: 0;
}

.benefit-list li:last-child {
  border-right: 0;
}

.benefit-list b {
  display: block;
  color: var(--ink);
  font-size: 14px;
}

.benefit-list__icon {
  display: grid;
  width: 33px;
  height: 33px;
  flex: 0 0 auto;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.benefit-list__icon svg {
  width: 18px;
}

.legal-footer {
  display: flex;
  min-height: 88px;
  padding: 24px 20px;
  color: #fff;
  background: #073652;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 11px;
}

.legal-footer__note {
  margin: 0;
  color: #9fbecf;
  font-size: 10px;
  line-height: 1.6;
  text-align: center;
  opacity: 0.85;
}

.legal-footer a {
  padding: 5px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.55);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.legal-footer a:hover,
.legal-footer a:focus-visible {
  border-color: #ffbd66;
  color: #ffcf8d;
}

.fixed-contact {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 50;
  height: 86px;
  padding: 9px 18px;
  overflow: hidden;
  border-top: 1px solid #d8e5eb;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 -7px 25px rgba(9, 43, 66, 0.18);
  backdrop-filter: blur(8px);
}

.fixed-contact__inner {
  display: grid;
  width: min(100%, 1180px);
  height: 100%;
  margin: 0 auto;
  grid-template-columns: 245px repeat(3, 1fr);
  align-items: center;
  gap: 9px;
}

.fixed-contact__lead {
  display: flex;
  min-width: 0;
  align-items: center;
}

.fixed-contact__lead p,
.fixed-contact__lead small,
.fixed-contact__lead strong {
  display: block;
}

.fixed-contact__lead p {
  margin: 0;
}

.fixed-contact__lead small {
  color: #65808d;
  font-size: 10px;
  font-weight: 700;
}

.fixed-contact__lead strong {
  margin-top: 3px;
  color: var(--blue-deep);
  font-family: "Yu Mincho", serif;
  font-size: 17px;
}

.fixed-contact a {
  display: flex;
  min-width: 0;
  min-height: 66px;
  border-radius: 9px;
  color: #fff;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  transition: filter 0.2s ease, transform 0.2s ease;
}

.fixed-contact a:hover,
.fixed-contact a:focus-visible {
  filter: brightness(1.05);
  transform: translateY(-2px);
}

.fixed-contact a > span,
.fixed-contact a small {
  display: block;
}

.fixed-contact a > span {
  font-size: 14px;
}

.fixed-contact a small {
  margin-bottom: 2px;
  font-size: 9px;
  font-weight: 600;
}

.fixed-contact__phone {
  background: linear-gradient(135deg, #065792, #004479);
}

.fixed-contact__phone > svg,
.fixed-contact__estimate > svg {
  width: 25px;
  flex: 0 0 auto;
  margin-right: 8px;
}

.fixed-contact__phone > svg {
  fill: currentColor;
  stroke: none;
}

.fixed-contact__estimate {
  background: linear-gradient(135deg, #f59b37, #dc6b0a);
}

.fixed-contact__narrow-break {
  display: none;
}

.fixed-contact__estimate > svg {
  width: 28px;
  height: 28px;
}

.web-campaign {
  position: relative;
  overflow: hidden;
  padding: 76px 20px 68px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0) 44%),
    #fff7e9;
}

.web-campaign::before,
.web-campaign::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.web-campaign::before {
  top: -180px;
  left: -130px;
  width: 410px;
  height: 410px;
  border: 72px solid rgba(255, 188, 83, 0.12);
}

.web-campaign::after {
  right: -85px;
  bottom: -125px;
  width: 280px;
  height: 280px;
  background: rgba(255, 183, 67, 0.1);
}

.web-campaign__inner {
  position: relative;
  z-index: 2;
  width: min(100%, 1110px);
  margin: 0 auto;
}

.campaign-heading {
  margin-bottom: 26px;
  text-align: center;
}

.campaign-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--orange-deep);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.campaign-heading__en::before,
.campaign-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.campaign-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(28px, 3vw, 41px);
  letter-spacing: 0.03em;
}

.campaign-heading h2 span {
  position: relative;
  color: var(--orange-deep);
  font-size: 1.2em;
}

.campaign-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 1px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #ffda76;
}

.campaign-heading p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.campaign-ticket {
  position: relative;
  display: grid;
  min-height: 258px;
  overflow: hidden;
  border: 3px solid var(--orange);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 22px 50px rgba(135, 84, 15, 0.17);
  grid-template-columns: 0.9fr 1.18fr 1.18fr;
}

.campaign-ticket::before,
.campaign-ticket::after {
  content: "";
  position: absolute;
  z-index: 4;
  top: 50%;
  width: 28px;
  height: 28px;
  border: 3px solid var(--orange);
  border-radius: 50%;
  background: #fff7e9;
  transform: translateY(-50%);
}

.campaign-ticket::before {
  left: -17px;
}

.campaign-ticket::after {
  right: -17px;
}

.campaign-ticket__label {
  position: relative;
  display: flex;
  padding: 25px 16px;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(145deg, #ff9e33, #eb760c);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}

.campaign-ticket__label::after {
  content: "";
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 11px;
}

.campaign-ticket__cat {
  position: relative;
  z-index: 1;
  display: grid;
  width: 55px;
  height: 55px;
  margin-bottom: 7px;
  border-radius: 50%;
  color: var(--orange-deep);
  background: #fff;
  place-items: center;
}

.campaign-ticket__cat svg {
  width: 42px;
  stroke-width: 2;
}

.campaign-ticket__limited,
.campaign-ticket__label strong,
.campaign-ticket__label small {
  position: relative;
  z-index: 1;
}

.campaign-ticket__limited {
  margin-bottom: 2px;
  padding: 3px 13px;
  border-radius: 999px;
  color: var(--orange-deep);
  background: #fff4c9;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.campaign-ticket__label strong {
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 25px;
  letter-spacing: 0.08em;
}

.campaign-ticket__label small {
  margin-top: 3px;
  color: #fff4dc;
  font-size: 10px;
}

.campaign-ticket__deadline {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin-top: 9px;
  padding: 4px 16px;
  border-radius: 999px;
  color: var(--orange-deep);
  background: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.campaign-ticket__offer {
  position: relative;
  display: flex;
  padding: 27px 25px 20px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.campaign-ticket__offer::after {
  content: "";
  position: absolute;
  top: 28px;
  right: 0;
  bottom: 28px;
  border-right: 2px dashed #e4d7c4;
}

.campaign-ticket__offer > p {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  font-weight: 800;
}

.campaign-ticket__discount {
  display: flex;
  height: 116px;
  color: var(--orange-deep);
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.campaign-ticket__discount > span {
  align-self: flex-start;
  margin: 27px -3px 0 0;
  padding: 5px 6px;
  border-radius: 4px;
  color: #fff;
  background: var(--blue);
  font-size: 12px;
  font-weight: 900;
  writing-mode: vertical-rl;
}

.campaign-ticket__discount > strong {
  font-family: Arial, sans-serif;
  font-size: 104px;
  font-weight: 900;
  letter-spacing: -0.08em;
  text-shadow: 3px 3px 0 #ffe4b8;
}

.campaign-ticket__discount > div {
  display: flex;
  margin-left: 9px;
  flex-direction: column;
}

.campaign-ticket__discount b {
  font-family: Arial, sans-serif;
  font-size: 34px;
}

.campaign-ticket__discount em {
  font-family: Arial, sans-serif;
  font-size: 22px;
  font-style: normal;
  font-weight: 900;
}

.campaign-ticket__offer .campaign-ticket__free {
  padding: 4px 16px;
  border-radius: 999px;
  color: var(--blue-deep);
  background: var(--blue-pale);
  font-size: 12px;
}

.campaign-ticket__free b {
  color: var(--orange-deep);
  font-size: 16px;
}

.campaign-ticket__action {
  display: flex;
  padding: 28px 30px 24px;
  align-items: stretch;
  justify-content: center;
  flex-direction: column;
}

.campaign-ticket__howto {
  display: flex;
  margin-bottom: 16px;
  align-items: center;
  justify-content: center;
  gap: 13px;
}

.campaign-ticket__howto > span {
  padding: 5px 8px;
  border: 1px solid var(--blue);
  border-radius: 4px;
  color: var(--blue);
  font-size: 10px;
  font-weight: 800;
  writing-mode: vertical-rl;
}

.campaign-ticket__howto p {
  margin: 0;
  color: #586e7b;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.65;
}

.campaign-ticket__howto strong {
  color: var(--orange-deep);
  font-size: 17px;
}

.campaign-ticket__action > a {
  position: relative;
  display: flex;
  min-height: 68px;
  border-radius: 9px;
  color: #fff;
  background: linear-gradient(135deg, #20bc6a, #0b974d);
  box-shadow: 0 9px 18px rgba(12, 148, 75, 0.22);
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 800;
  transition: filter 0.2s ease, transform 0.2s ease;
}

.campaign-ticket__action > a:hover {
  filter: brightness(1.04);
  transform: translateY(-2px);
}

.campaign-ticket__action a small {
  display: block;
  margin-bottom: 2px;
  font-size: 9px;
  font-weight: 600;
}

.campaign-ticket__action a > svg {
  position: absolute;
  right: 12px;
  width: 15px;
}

.campaign-ticket__line {
  display: grid;
  width: 39px;
  height: 33px;
  margin-right: 10px;
  border-radius: 11px;
  color: var(--green);
  background: #fff;
  place-items: center;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
}

.campaign-ticket__action > a + a {
  margin-top: 9px;
}

.campaign-ticket__action > a.campaign-ticket__cta--phone {
  border: 1px solid #cfe2ec;
  color: var(--blue-deep);
  background: var(--blue-pale);
  box-shadow: none;
  font-family: Arial, sans-serif;
  font-size: 17px;
}

.campaign-ticket__action > a.campaign-ticket__cta--phone > svg {
  position: static;
  width: 20px;
  margin-right: 6px;
  fill: currentColor;
  stroke: none;
}

.campaign-ticket__action > a.campaign-ticket__cta--form {
  background: linear-gradient(135deg, #f59b37, #dc6b0a);
  box-shadow: 0 9px 18px rgba(220, 107, 10, 0.2);
}

.campaign-ticket__action > a.campaign-ticket__cta--form > svg {
  position: static;
  width: 19px;
  margin-right: 8px;
}

.campaign-ticket__any {
  margin: 12px 0 0;
  color: #687f8b;
  font-size: 11px;
  text-align: center;
}

.campaign-notes {
  margin: 13px 0 0;
  color: #847668;
  font-size: 10px;
  line-height: 1.7;
  text-align: center;
}

.web-campaign__paw {
  position: absolute;
  color: rgba(242, 138, 33, 0.08);
  font-size: 190px;
  line-height: 1;
}

.web-campaign__paw::before,
.web-campaign__paw::after {
  content: "●";
  position: absolute;
  font-size: 0.36em;
}

.web-campaign__paw::before {
  top: -0.2em;
  left: -0.08em;
}

.web-campaign__paw::after {
  top: -0.22em;
  right: -0.08em;
}

.web-campaign__paw--one {
  top: 140px;
  right: 3%;
  transform: rotate(24deg);
}

.web-campaign__paw--two {
  bottom: 30px;
  left: 3%;
  font-size: 120px;
  transform: rotate(-24deg);
}

.problems {
  position: relative;
  padding: 90px 20px 86px;
  overflow: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.92)),
    radial-gradient(circle at 1px 1px, #81bddc 1px, transparent 1.3px);
  background-size: auto, 24px 24px;
}

.problems::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 49px;
  background: #9eb8c6;
}

.problems::after {
  content: "";
  position: absolute;
  top: 43px;
  left: 50%;
  width: 9px;
  height: 9px;
  border: 1px solid #9eb8c6;
  border-radius: 50%;
  background: #fff;
  transform: translateX(-50%);
}

.problems__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.section-heading {
  text-align: center;
}

.section-heading__en {
  display: inline-flex;
  margin-bottom: 9px;
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.section-heading__en::before,
.section-heading__en::after {
  content: "";
  width: 26px;
  height: 1px;
  background: currentColor;
}

.section-heading--blue .section-heading__en {
  color: var(--blue);
}

.section-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(29px, 3.2vw, 43px);
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.section-heading h2 span {
  position: relative;
  color: var(--blue);
}

.section-heading h2 span::after {
  content: "";
  position: absolute;
  right: -2px;
  bottom: 2px;
  left: -2px;
  z-index: -1;
  height: 9px;
  background: #bee8ff;
}

.section-heading > p {
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.8;
}

.problem-grid {
  display: grid;
  margin-top: 44px;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.problem-card {
  position: relative;
  display: grid;
  min-height: 190px;
  padding: 26px 23px 23px;
  overflow: hidden;
  border: 1px solid #d9e8ef;
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 11px 28px rgba(16, 65, 94, 0.07);
  grid-template-columns: 72px 1fr;
  align-items: center;
  gap: 17px;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.problem-card::after {
  content: "";
  position: absolute;
  right: -32px;
  bottom: -47px;
  width: 105px;
  height: 105px;
  border-radius: 50%;
  background: #edf8fd;
}

.problem-card:hover {
  border-color: #aad4e7;
  box-shadow: 0 17px 35px rgba(16, 65, 94, 0.11);
  transform: translateY(-3px);
}

.problem-card__number {
  position: absolute;
  top: 11px;
  right: 16px;
  color: #e4f1f6;
  font-family: Georgia, serif;
  font-size: 32px;
  font-style: italic;
  font-weight: 700;
  line-height: 1;
}

.problem-card__icon {
  display: grid;
  width: 72px;
  height: 72px;
  border: 1px solid #cbe6f3;
  border-radius: 50%;
  color: var(--blue);
  background: linear-gradient(145deg, #f6fcff, #e4f5fc);
  place-items: center;
}

.problem-card__icon svg {
  width: 43px;
  height: 43px;
  stroke-width: 1.7;
}

.problem-card__body {
  position: relative;
  z-index: 2;
}

.problem-card h3 {
  margin: 0 0 9px;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.55;
  letter-spacing: 0.02em;
}

.problem-card h3::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin: 0 7px 3px 0;
  border-radius: 50%;
  background: var(--orange);
}

.problem-card p {
  margin: 0;
  color: #71838d;
  font-size: 11px;
  line-height: 1.75;
}

.problems__message {
  position: relative;
  display: block;
  width: 100vw;
  height: clamp(430px, 40vw, 560px);
  margin: 66px 0 0 calc(50% - 50vw);
  overflow: hidden;
  border: 0;
  border-radius: 0;
  color: var(--ink);
  background: #dceaf0;
  box-shadow: none;
}

.problems__message-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #dceaf0;
}

.problems__message-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(238, 248, 252, 0.98) 0%, rgba(238, 248, 252, 0.9) 38%, rgba(238, 248, 252, 0.18) 66%, transparent 78%),
    linear-gradient(180deg, rgba(0, 75, 141, 0.08), transparent 26%);
  pointer-events: none;
}

.problems__message-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 52%;
}

.problems__message p {
  position: relative;
  z-index: 2;
  display: flex;
  width: min(calc(100% - 40px), 1120px);
  height: 100%;
  margin: 0 auto;
  padding: 48px 20px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
}

.problems__message p span,
.problems__message p strong {
  display: block;
}

.problems__message p span {
  margin-bottom: 14px;
  color: var(--blue);
  font-size: clamp(17px, 1.6vw, 22px);
  font-weight: 800;
  letter-spacing: 0.06em;
}

.problems__message p strong {
  width: min(100%, 690px);
  max-width: none;
  margin: 0;
  padding: 12px 34px 14px;
  color: #fff;
  background: linear-gradient(135deg, #005b9f, #0086ca);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(30px, 3.8vw, 48px);
  line-height: 1.45;
  letter-spacing: 0.04em;
}

.vendor-anxiety {
  position: relative;
  padding: 98px 20px 0;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(125deg, rgba(6, 47, 78, 0.98), rgba(5, 75, 122, 0.96)),
    var(--blue-deep);
}

.vendor-anxiety::before {
  content: "?";
  position: absolute;
  top: -145px;
  right: 3%;
  color: rgba(255, 255, 255, 0.025);
  font-family: Georgia, serif;
  font-size: 550px;
  font-weight: 700;
  line-height: 1;
}

.vendor-anxiety::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.12;
  background-image: radial-gradient(circle at 1px 1px, #9ed9fa 1px, transparent 0);
  background-size: 28px 28px;
  pointer-events: none;
}

.vendor-anxiety__glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(10px);
  pointer-events: none;
}

.vendor-anxiety__glow--left {
  top: 180px;
  left: -190px;
  width: 470px;
  height: 470px;
  background: rgba(0, 155, 221, 0.14);
}

.vendor-anxiety__glow--right {
  right: -150px;
  bottom: 30px;
  width: 380px;
  height: 380px;
  background: rgba(255, 150, 45, 0.1);
}

.vendor-anxiety__inner {
  position: relative;
  z-index: 2;
  display: grid;
  width: min(100%, 1120px);
  margin: 0 auto;
  padding-bottom: 72px;
  grid-template-columns: 0.78fr 1.22fr;
  gap: 72px;
}

.vendor-anxiety__intro {
  position: relative;
  padding-top: 9px;
}

.vendor-anxiety__step {
  display: inline-flex;
  margin-bottom: 15px;
  color: #79cff7;
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.24em;
}

.vendor-anxiety__step::after {
  content: "";
  width: 45px;
  height: 1px;
  background: currentColor;
}

.vendor-anxiety h2 {
  margin: 0;
  color: #fff;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(30px, 3.1vw, 43px);
  font-weight: 600;
  line-height: 1.48;
  letter-spacing: 0.025em;
}

.vendor-anxiety h2 strong {
  position: relative;
  color: #ffb34f;
  font-weight: 700;
}

.vendor-anxiety h2 strong::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -5px;
  left: 0;
  height: 2px;
  background: currentColor;
}

.vendor-anxiety__intro > p {
  margin: 19px 0 0;
  color: #b9d5e5;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.9;
}

.anxiety-illustration {
  position: relative;
  width: 255px;
  height: 150px;
  margin: 28px auto 0;
  opacity: 0.82;
}

.anxiety-illustration::before {
  content: "";
  position: absolute;
  right: 31px;
  bottom: 0;
  left: 31px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent);
}

.anxiety-illustration__person {
  position: absolute;
  bottom: 1px;
  left: 50%;
  width: 112px;
  height: 137px;
  transform: translateX(-50%);
}

.anxiety-illustration__head {
  position: absolute;
  top: 0;
  left: 50%;
  width: 48px;
  height: 54px;
  border: 2px solid #8cc9e8;
  border-radius: 48% 48% 45% 45%;
  transform: translateX(-50%);
}

.anxiety-illustration__head::before {
  content: "";
  position: absolute;
  top: -7px;
  left: 4px;
  width: 38px;
  height: 27px;
  border-radius: 50% 50% 35% 35%;
  background: #8cc9e8;
}

.anxiety-illustration__head::after {
  content: "⌒";
  position: absolute;
  bottom: 2px;
  left: 50%;
  color: #8cc9e8;
  font-size: 15px;
  transform: translateX(-50%);
}

.anxiety-illustration__body {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 78px;
  height: 78px;
  border: 2px solid #8cc9e8;
  border-bottom: 0;
  border-radius: 38px 38px 0 0;
  transform: translateX(-50%);
}

.anxiety-illustration__arm {
  position: absolute;
  bottom: 34px;
  width: 46px;
  height: 2px;
  background: #8cc9e8;
  transform-origin: center;
}

.anxiety-illustration__arm--left {
  left: 0;
  transform: rotate(-32deg);
}

.anxiety-illustration__arm--right {
  right: 0;
  transform: rotate(32deg);
}

.anxiety-illustration__bubble {
  position: absolute;
  z-index: 2;
  display: grid;
  width: 46px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  color: #c4e7f8;
  background: rgba(255, 255, 255, 0.05);
  place-items: center;
  font-family: Georgia, serif;
  font-size: 23px;
}

.anxiety-illustration__bubble::after {
  content: "";
  position: absolute;
  bottom: -6px;
  width: 8px;
  height: 8px;
  border-right: 1px solid rgba(255, 255, 255, 0.4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  background: #075487;
  transform: rotate(45deg);
}

.anxiety-illustration__bubble--yen {
  top: 8px;
  left: 20px;
}

.anxiety-illustration__bubble--question {
  top: 28px;
  right: 12px;
}

.anxiety-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.anxiety-item {
  position: relative;
  display: flex;
  min-height: 188px;
  padding: 29px 24px 23px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.085);
  align-items: flex-start;
  flex-direction: column;
  backdrop-filter: blur(8px);
  transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.anxiety-item:hover {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.13);
  transform: translateY(-3px);
}

.anxiety-item__index {
  position: absolute;
  top: 13px;
  right: 17px;
  color: rgba(255, 255, 255, 0.17);
  font-family: Georgia, serif;
  font-size: 25px;
  font-style: italic;
}

.anxiety-item__icon {
  display: grid;
  width: 50px;
  height: 50px;
  margin-bottom: 17px;
  border-radius: 50%;
  color: #a9dcf4;
  background: rgba(89, 180, 225, 0.13);
  place-items: center;
}

.anxiety-item__icon svg {
  width: 31px;
  height: 31px;
  stroke-width: 1.7;
}

.anxiety-item__text {
  position: relative;
  z-index: 2;
}

.anxiety-item__text p {
  margin: 0 0 3px;
  color: #acd1e4;
  font-size: 10px;
  font-weight: 700;
}

.anxiety-item h3 {
  margin: 0;
  color: #fff;
  font-size: 14px;
  line-height: 1.65;
  letter-spacing: 0.015em;
}

.anxiety-item h3 em {
  color: #ffbd68;
  font-size: 16px;
  font-style: normal;
}

.anxiety-item__mark {
  position: absolute;
  right: -7px;
  bottom: -37px;
  color: rgba(255, 255, 255, 0.035);
  font-family: Georgia, serif;
  font-size: 120px;
  font-weight: 700;
  line-height: 1;
}

.vendor-anxiety__closing {
  position: relative;
  z-index: 3;
  display: flex;
  width: min(100%, 810px);
  min-height: 96px;
  margin: 0 auto;
  padding: 20px 80px 20px 38px;
  border-radius: 17px 17px 0 0;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 -8px 30px rgba(0, 29, 50, 0.18);
  align-items: center;
  justify-content: center;
}

.vendor-anxiety__closing::before {
  content: "";
  position: absolute;
  top: 18px;
  bottom: 18px;
  left: 0;
  width: 5px;
  border-radius: 0 5px 5px 0;
  background: var(--orange);
}

.vendor-anxiety__closing p {
  margin: 0;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.vendor-anxiety__closing strong {
  position: relative;
  color: var(--orange-deep);
}

.vendor-anxiety__closing strong::after {
  content: "";
  position: absolute;
  right: -2px;
  bottom: 0;
  left: -2px;
  z-index: -1;
  height: 7px;
  background: #ffe0aa;
}

.vendor-anxiety__closing > span {
  position: absolute;
  right: 26px;
  display: grid;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #fff;
  background: var(--orange);
  place-items: center;
}

.vendor-anxiety__closing svg {
  width: 17px;
}

.mobile-only {
  display: none;
}

.narrow-mobile-only {
  display: none;
}

.solution {
  position: relative;
  padding: 100px 20px 46px;
  overflow: hidden;
  background:
    linear-gradient(180deg, #f4fbff 0%, #fff 34%, #fff 100%);
}

.solution::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: min(100%, 810px);
  height: 1px;
  background: linear-gradient(90deg, transparent, #9acde6, transparent);
  transform: translateX(-50%);
}

.solution__shape {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.solution__shape--one {
  top: 70px;
  left: -170px;
  width: 390px;
  height: 390px;
  border: 70px solid rgba(0, 104, 183, 0.035);
}

.solution__shape--two {
  right: -110px;
  bottom: 90px;
  width: 310px;
  height: 310px;
  background: rgba(242, 138, 33, 0.045);
}

.solution__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.solution-heading {
  text-align: center;
}

.solution-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(32px, 3.6vw, 48px);
  line-height: 1.4;
  letter-spacing: 0.025em;
}

.solution-heading h2 span {
  position: relative;
  color: var(--blue);
  font-size: 1.08em;
}

.solution-heading h2 span::before {
  content: "";
  position: absolute;
  right: -6px;
  bottom: 2px;
  left: -6px;
  z-index: -1;
  height: 11px;
  border-radius: 3px;
  background: #bde7fa;
}

.solution-heading h2 span::after {
  content: "";
  position: absolute;
  top: -7px;
  right: -11px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: -12px -8px 0 -1px var(--orange), 10px 10px 0 -2px var(--orange);
}

.solution-heading > p {
  margin: 17px 0 0;
  color: #5e7685;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.9;
}

.reasons {
  position: relative;
  padding: 62px 20px 100px;
  overflow: hidden;
  background: #f4f8fa;
}

.reasons::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.32;
  background-image: linear-gradient(#d8e6ed 1px, transparent 1px), linear-gradient(90deg, #d8e6ed 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(180deg, #000, transparent 38%);
  pointer-events: none;
}

.reasons__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.reasons-heading {
  margin-bottom: 54px;
  text-align: center;
}

.reasons-heading__en {
  display: inline-flex;
  margin-bottom: 9px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.reasons-heading__en::before,
.reasons-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.reasons-heading__label {
  margin: 0 0 6px;
  color: #607b8a;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.reasons-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.35;
  letter-spacing: 0.03em;
}

.reasons-heading h2 span {
  color: var(--blue);
}

.reasons-heading h2 strong {
  display: inline-block;
  margin: 0 6px;
  color: var(--orange-deep);
  font-family: Georgia, serif;
  font-size: 1.35em;
  font-style: italic;
  line-height: 1;
}

.reasons-heading > p:last-child {
  margin: 14px 0 0;
  color: #6c818d;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.85;
}

.reason-priority {
  display: grid;
  gap: 24px;
}

.reason-feature {
  position: relative;
  display: grid;
  min-height: 425px;
  overflow: hidden;
  border: 1px solid #dbe7ed;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 17px 38px rgba(18, 63, 89, 0.08);
  grid-template-columns: 1.28fr 0.72fr;
}

.reason-feature--clear,
.reason-feature--reverse {
  grid-template-columns: 0.72fr 1.28fr;
}

.reason-feature::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 5px;
  background: var(--blue);
}

.reason-feature--price::after,
.reason-feature--purchase::after,
.reason-feature--orange::after {
  background: var(--orange);
}

.reason-feature__content {
  padding: 46px 51px 42px;
}

.reason-feature__head {
  display: flex;
  margin-bottom: 21px;
  align-items: center;
  justify-content: space-between;
}

.reason-feature__number {
  color: #8ba2ae;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.reason-feature__number b {
  margin-left: 6px;
  color: var(--blue);
  font-family: Georgia, serif;
  font-size: 30px;
  font-style: italic;
  line-height: 1;
  vertical-align: middle;
}

.reason-feature--price .reason-feature__number b,
.reason-feature--purchase .reason-feature__number b,
.reason-feature--orange .reason-feature__number b {
  color: var(--orange-deep);
}

.reason-feature__category {
  padding: 5px 11px;
  border-radius: 999px;
  color: var(--blue-deep);
  background: var(--blue-pale);
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.15em;
}

.reason-feature--price .reason-feature__category,
.reason-feature--purchase .reason-feature__category,
.reason-feature--orange .reason-feature__category {
  color: var(--orange-deep);
  background: #fff1df;
}

.reason-feature h3 {
  margin: 0 0 18px;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.reason-feature h3 span {
  position: relative;
  color: var(--blue-deep);
}

.reason-feature--price h3 span,
.reason-feature--purchase h3 span,
.reason-feature--orange h3 span {
  color: var(--orange-deep);
}

.reason-feature h3 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 1px;
  left: -3px;
  z-index: -1;
  height: 8px;
  background: #c9eafa;
}

.reason-feature--price h3 span::after,
.reason-feature--purchase h3 span::after,
.reason-feature--orange h3 span::after {
  background: #ffe0ad;
}

.reason-feature__content > p {
  margin: 0 0 10px;
  color: #647b88;
  font-size: 12px;
  line-height: 1.85;
}

.reason-feature__points {
  display: flex;
  margin: 18px 0 0;
  padding: 0;
  gap: 18px;
  list-style: none;
}

.reason-feature__points li {
  display: flex;
  color: #39566a;
  align-items: center;
  font-size: 10px;
  font-weight: 800;
}

.reason-feature__points svg {
  width: 17px;
  height: 17px;
  margin-right: 5px;
  padding: 3px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  stroke-width: 2.7;
}

.reason-feature--price .reason-feature__points svg,
.reason-feature--orange .reason-feature__points svg {
  background: var(--orange);
}

.reason-feature__visual {
  position: relative;
  display: flex;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.reason-feature--photo {
  min-height: 440px;
}

.reason-photo-visual {
  background: #dbe8ee;
}

.reason-photo-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(5, 40, 64, 0.03) 42%, rgba(5, 40, 64, 0.76)),
    linear-gradient(90deg, rgba(0, 82, 135, 0.1), transparent 58%);
  pointer-events: none;
}

.reason-feature--orange .reason-photo-visual::after,
.reason-feature--price .reason-photo-visual::after {
  background:
    linear-gradient(180deg, rgba(60, 31, 8, 0.02) 42%, rgba(60, 31, 8, 0.75)),
    linear-gradient(90deg, rgba(211, 103, 10, 0.08), transparent 58%);
}

.reason-photo-visual > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.reason-photo-visual__caption {
  position: absolute;
  right: 28px;
  bottom: 30px;
  left: 28px;
  z-index: 1;
  color: #fff;
}

.reason-photo-visual__caption span,
.reason-photo-visual__caption strong {
  display: block;
}

.reason-photo-visual__caption span {
  margin-bottom: 7px;
  color: #9cddfa;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.reason-feature--orange .reason-photo-visual__caption span,
.reason-feature--price .reason-photo-visual__caption span {
  color: #ffd5a6;
}

.reason-photo-visual__caption strong {
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 26px;
  line-height: 1.45;
  letter-spacing: 0.03em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.34);
}

.clear-visual {
  background:
    radial-gradient(circle at 1px 1px, rgba(0, 104, 183, 0.12) 1px, transparent 0),
    #eaf6fc;
  background-size: 18px 18px;
}

.clear-visual__receipt {
  position: relative;
  z-index: 1;
  width: 210px;
  min-height: 254px;
  padding: 25px 24px;
  background: #fff;
  box-shadow: 0 17px 35px rgba(0, 75, 141, 0.14);
  transform: rotate(-4deg);
}

.clear-visual__receipt::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 15px;
  background: linear-gradient(135deg, #fff 7px, transparent 0) 0 7px / 14px 14px repeat-x;
}

.clear-visual__receipt > span {
  display: block;
  margin-bottom: 18px;
  color: var(--blue-deep);
  font-size: 17px;
  font-weight: 800;
  text-align: center;
}

.clear-visual__receipt > i {
  display: block;
  height: 5px;
  margin-bottom: 10px;
  border-radius: 5px;
  background: #dfebf0;
}

.clear-visual__receipt > i:nth-of-type(2) {
  width: 77%;
}

.clear-visual__receipt > i:nth-of-type(3) {
  width: 60%;
}

.clear-visual__receipt > div {
  margin-top: 21px;
  padding-top: 16px;
  border-top: 1px dashed #adc5d2;
  text-align: center;
}

.clear-visual__receipt small,
.clear-visual__receipt strong {
  display: block;
}

.clear-visual__receipt small {
  color: #80949f;
  font-size: 9px;
}

.clear-visual__receipt strong {
  margin-top: 4px;
  color: var(--blue-deep);
  font-size: 18px;
}

.clear-visual__zero {
  position: absolute;
  right: 20px;
  bottom: 43px;
  z-index: 2;
  display: grid;
  width: 105px;
  height: 105px;
  border: 5px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: var(--orange);
  box-shadow: 0 9px 25px rgba(205, 101, 0, 0.25);
  place-items: center;
  transform: rotate(7deg);
}

.clear-visual__zero strong {
  margin: 5px 0 -31px -12px;
  font-family: Arial, sans-serif;
  font-size: 52px;
}

.clear-visual__zero span {
  margin: -12px 0 0 38px;
  font-size: 14px;
  font-weight: 800;
}

.clear-visual__zero small {
  margin-top: -17px;
  font-size: 10px;
  font-weight: 800;
}

.clear-visual__seal {
  position: absolute;
  top: 40px;
  right: 18px;
  display: flex;
  color: var(--blue);
  align-items: center;
  flex-direction: column;
  font-size: 10px;
  font-weight: 800;
}

.clear-visual__seal svg {
  width: 35px;
  height: 35px;
  margin-bottom: 4px;
  padding: 7px;
  border: 2px solid var(--blue);
  border-radius: 50%;
  stroke-width: 2.7;
}

.purchase-tags {
  display: flex;
  margin-top: 17px;
  flex-wrap: wrap;
  gap: 6px;
}

.purchase-tags span {
  padding: 4px 9px;
  border: 1px solid #ecd2b2;
  border-radius: 4px;
  color: #9c5e1b;
  background: #fffaf4;
  font-size: 9px;
  font-weight: 800;
}

.purchase-visual {
  padding: 35px 30px;
  background: linear-gradient(145deg, #fff5e7, #ffecd2);
}

.purchase-visual > p {
  margin: 0 0 12px;
  color: #76592f;
  font-size: 11px;
  font-weight: 700;
}

.purchase-visual__base,
.purchase-visual__buy,
.purchase-visual__result {
  display: flex;
  width: 100%;
  padding: 9px 13px;
  border-radius: 7px;
  align-items: center;
  justify-content: space-between;
}

.purchase-visual__base {
  color: #496472;
  background: #fff;
}

.purchase-visual__buy {
  color: #fff;
  background: var(--blue);
}

.purchase-visual__result {
  padding: 12px 14px;
  color: #fff;
  background: var(--orange-deep);
  box-shadow: 0 8px 20px rgba(223, 111, 13, 0.25);
}

.purchase-visual__base span,
.purchase-visual__buy span,
.purchase-visual__result span {
  font-size: 10px;
  font-weight: 800;
}

.purchase-visual__base strong,
.purchase-visual__buy strong,
.purchase-visual__result strong {
  font-family: Arial, sans-serif;
  font-size: 22px;
}

.purchase-visual__result strong {
  font-size: 28px;
}

.purchase-visual strong small {
  margin-left: 2px;
  font-size: 10px;
}

.purchase-visual__minus {
  height: 25px;
  color: var(--orange-deep);
  font-size: 27px;
  font-weight: 300;
  line-height: 25px;
  text-align: center;
}

.purchase-visual__arrow {
  position: relative;
  width: 2px;
  height: 22px;
  margin: 4px auto;
  background: #d39a57;
}

.purchase-visual__arrow span {
  position: absolute;
  bottom: 0;
  left: -4px;
  width: 10px;
  height: 10px;
  border-right: 2px solid #d39a57;
  border-bottom: 2px solid #d39a57;
  transform: rotate(45deg);
}

.purchase-visual > small {
  margin-top: 9px;
  color: #998269;
  font-size: 8px;
}

.reason-middle-heading {
  margin: 78px 0 27px;
  text-align: center;
}

.reason-middle-heading span {
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.reason-middle-heading h3 {
  margin: 5px 0 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 26px;
  letter-spacing: 0.03em;
}

.reason-service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.reason-service-card {
  position: relative;
  min-height: 450px;
  padding: 28px 26px 25px;
  overflow: hidden;
  border: 1px solid #d9e7ee;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 13px 30px rgba(17, 66, 95, 0.07);
}

.reason-service-card::after {
  content: "";
  position: absolute;
  right: -42px;
  bottom: -42px;
  width: 115px;
  height: 115px;
  border-radius: 50%;
  background: #eaf7fd;
}

.reason-service-card--orange::after {
  background: #fff1df;
}

.reason-service-card__head {
  display: flex;
  margin-bottom: 15px;
  align-items: center;
  justify-content: space-between;
}

.reason-service-card__number {
  color: #dbe8ed;
  font-family: Georgia, serif;
  font-size: 45px;
  font-style: italic;
  font-weight: 700;
}

.reason-service-card__icon {
  display: grid;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.reason-service-card--orange .reason-service-card__icon {
  color: var(--orange-deep);
  background: #fff1df;
}

.reason-service-card__icon svg {
  width: 38px;
  height: 38px;
}

.reason-service-card__en {
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.reason-service-card--orange .reason-service-card__en {
  color: var(--orange-deep);
}

.reason-service-card h4 {
  margin: 7px 0 17px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 19px;
  line-height: 1.55;
}

.reason-service-card h4 strong {
  color: var(--blue-deep);
  font-size: 21px;
}

.reason-service-card--orange h4 strong {
  color: var(--orange-deep);
}

.reason-service-card > p {
  position: relative;
  z-index: 1;
  margin: 0 0 9px;
  color: #6c808c;
  font-size: 11px;
  line-height: 1.8;
}

.reason-service-card ul {
  position: relative;
  z-index: 1;
  display: flex;
  margin: 18px 0 0;
  padding: 0;
  flex-wrap: wrap;
  gap: 5px;
  list-style: none;
}

.reason-service-card li {
  padding: 4px 8px;
  border-radius: 3px;
  color: var(--blue-deep);
  background: var(--blue-pale);
  font-size: 8px;
  font-weight: 800;
}

.reason-service-card--orange li {
  color: #9c5e1b;
  background: #fff1df;
}

.reason-trust {
  display: grid;
  margin-top: 65px;
  gap: 16px;
}

.reason-wide {
  position: relative;
  display: grid;
  min-height: 285px;
  overflow: hidden;
  border-radius: 17px;
  color: #fff;
  grid-template-columns: 115px 190px 1fr;
  align-items: center;
}

.reason-wide::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.13;
  background-image: radial-gradient(circle at 1px 1px, #fff 1px, transparent 0);
  background-size: 22px 22px;
}

.reason-wide--flexible {
  background: linear-gradient(115deg, #0b3858, #056ba9);
}

.reason-wide--local {
  background: linear-gradient(115deg, #005c9b, #0086c7);
}

.reason-wide__number,
.reason-wide__icon,
.reason-wide__content {
  position: relative;
  z-index: 1;
}

.reason-wide__number {
  display: flex;
  height: 74%;
  border-right: 1px solid rgba(255, 255, 255, 0.18);
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.reason-wide__number span {
  color: #acd7ed;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.15em;
}

.reason-wide__number strong {
  color: #fff;
  font-family: Georgia, serif;
  font-size: 52px;
  font-style: italic;
}

.reason-wide__icon {
  display: grid;
  width: 130px;
  height: 130px;
  margin: auto;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  color: #b9e7fd;
  background: rgba(255, 255, 255, 0.07);
  place-items: center;
}

.reason-wide__icon svg {
  width: 74px;
  height: 74px;
  stroke-width: 1.5;
}

.reason-wide__content {
  padding: 39px 50px 39px 27px;
}

.reason-wide__en {
  color: #91d2f1;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.reason-wide h3 {
  margin: 6px 0 13px;
  font-family: "Yu Mincho", serif;
  font-size: 23px;
  font-weight: 600;
  line-height: 1.5;
}

.reason-wide h3 strong {
  color: #ffbd68;
  font-size: 26px;
}

.reason-wide__content > p {
  margin: 0;
  color: #d0e5f0;
  font-size: 11px;
  line-height: 1.8;
}

.reason-wide__tags {
  display: flex;
  margin-top: 15px;
  flex-wrap: wrap;
  gap: 6px;
}

.reason-wide__tags span {
  padding: 4px 9px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 999px;
  color: #fff;
  background: rgba(255, 255, 255, 0.07);
  font-size: 8px;
  font-weight: 700;
}

.reasons-cta {
  position: relative;
  width: min(100%, 1040px);
  margin: 58px auto 0;
  overflow: hidden;
  border: 1px solid #d7e5ec;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(17, 66, 95, 0.13);
}

.reasons-campaign__head {
  display: grid;
  min-height: 170px;
  padding: 28px 34px;
  color: #fff;
  background:
    radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.14), transparent 28%),
    linear-gradient(120deg, #06466f, #0074ad);
  grid-template-columns: 1fr 225px;
  align-items: center;
  gap: 30px;
}

.reasons-campaign__title > span {
  display: inline-flex;
  color: #a8def6;
  align-items: center;
  gap: 9px;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.reasons-campaign__title > span b {
  padding: 5px 9px;
  border-radius: 4px;
  color: #fff;
  background: var(--orange);
  letter-spacing: 0.08em;
}

.reasons-campaign__title h3 {
  margin: 10px 0 6px;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 27px;
  line-height: 1.45;
}

.reasons-campaign__title p {
  margin: 0;
  color: #d6edf7;
  font-size: 13px;
  font-weight: 600;
}

.reasons-campaign__offer {
  display: flex;
  min-height: 112px;
  padding: 15px 18px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.1);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}

.reasons-campaign__offer > span {
  color: #a8def6;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.reasons-campaign__offer > strong {
  margin: 3px 0 6px;
  color: #ffbd69;
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 28px;
}

.reasons-campaign__offer > strong em {
  margin-right: 3px;
  font-size: 16px;
  font-style: normal;
}

.reasons-campaign__offer > small {
  color: #e8f5fa;
  font-size: 10px;
  font-weight: 700;
}

.reasons-campaign__offer > small b {
  margin-left: 3px;
  color: #fff;
  font-size: 16px;
}

.reasons-campaign__flow {
  display: grid;
  padding: 23px 34px;
  border-bottom: 1px solid #efdcc1;
  background: #fff8ed;
  grid-template-columns: 235px 1fr;
  align-items: center;
  gap: 24px;
}

.reasons-campaign__flow > p {
  margin: 0;
}

.reasons-campaign__flow > p span,
.reasons-campaign__flow > p strong {
  display: block;
}

.reasons-campaign__flow > p span {
  margin-bottom: 4px;
  color: var(--orange-deep);
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.reasons-campaign__flow > p strong {
  color: var(--ink);
  font-size: 15px;
}

.reasons-campaign__flow ol {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  list-style: none;
}

.reasons-campaign__flow li {
  position: relative;
  display: flex;
  min-height: 64px;
  padding: 9px 12px;
  border: 1px solid #edd8bb;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 6px 14px rgba(133, 87, 30, 0.06);
  align-items: center;
}

.reasons-campaign__flow li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -15px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #e5a152;
  border-right: 2px solid #e5a152;
  transform: translateY(-50%) rotate(45deg);
}

.reasons-campaign__flow li > span {
  display: grid;
  width: 31px;
  height: 31px;
  flex: 0 0 auto;
  margin-right: 9px;
  border-radius: 50%;
  color: #fff;
  background: var(--orange);
  place-items: center;
  font-family: Georgia, serif;
  font-size: 13px;
  font-style: italic;
  font-weight: 700;
}

.reasons-campaign__flow li > strong {
  color: #405b6b;
  font-size: 11px;
  line-height: 1.55;
}

.reasons-cta__body {
  display: grid;
  padding: 25px 34px 27px;
  grid-template-columns: 0.8fr 1.2fr;
  align-items: center;
  gap: 30px;
}

.reasons-cta__copy span {
  color: var(--blue);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.07em;
}

.reasons-cta__copy p {
  margin: 5px 0 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.55;
}

.reasons-cta__copy strong {
  color: var(--orange-deep);
}

.reasons-cta__actions {
  display: grid;
  padding-left: 30px;
  border-left: 1px dashed #c8d7de;
  grid-template-columns: 1.25fr 0.6fr 1.15fr;
  gap: 8px;
}

.reasons-cta__actions a {
  display: flex;
  min-height: 65px;
  border-radius: 8px;
  align-items: center;
  justify-content: center;
  font-weight: 800;
}

.reasons-cta__actions small {
  display: block;
  margin-bottom: 3px;
  font-size: 8px;
  font-weight: 600;
}

.reasons-cta__phone {
  border: 1px solid #cfe2ec;
  color: var(--blue-deep);
  background: var(--blue-pale);
  font-family: Arial, sans-serif;
  font-size: 17px;
}

.reasons-cta__phone > svg {
  width: 21px;
  margin-right: 5px;
  fill: currentColor;
  stroke: none;
}

.reasons-cta__form {
  color: #fff;
  background: linear-gradient(135deg, #f59b37, #dc6b0a);
  font-size: 13px;
}

.reasons-cta__form > svg {
  width: 25px;
  height: 25px;
  flex: 0 0 auto;
  margin-right: 6px;
}

.reasons-campaign__note {
  margin: 0;
  padding: 10px 18px 11px;
  border-top: 1px solid #e4edf1;
  color: #84939b;
  background: #f8fbfc;
  font-size: 9px;
  line-height: 1.6;
  text-align: center;
}

.trust {
  position: relative;
  padding: 102px 20px 92px;
  overflow: hidden;
  background: #fff;
}

.trust::before,
.trust::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.trust::before {
  top: -210px;
  right: -150px;
  width: 480px;
  height: 480px;
  border: 80px solid rgba(0, 104, 183, 0.04);
}

.trust::after {
  bottom: 60px;
  left: -110px;
  width: 280px;
  height: 280px;
  background: rgba(242, 138, 33, 0.035);
}

.trust__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.trust-heading {
  margin-bottom: 49px;
  text-align: center;
}

.trust-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.trust-heading__en::before,
.trust-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.trust-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(33px, 3.7vw, 48px);
  letter-spacing: 0.03em;
}

.trust-heading h2 span {
  position: relative;
  color: var(--blue);
}

.trust-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 1px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #c4eafb;
}

.trust-heading p {
  margin: 13px 0 0;
  color: #687f8c;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.8;
}

.trust-layout {
  display: grid;
  grid-template-columns: 0.67fr 1.33fr;
  align-items: stretch;
  gap: 18px;
}

.trust-assurance {
  position: relative;
  display: flex;
  min-height: 670px;
  padding: 44px 32px 35px;
  overflow: hidden;
  border-radius: 18px;
  color: #fff;
  background:
    radial-gradient(circle at 75% 12%, rgba(255, 255, 255, 0.16), transparent 27%),
    linear-gradient(155deg, #006daf, #06436e);
  align-items: center;
  flex-direction: column;
  text-align: center;
  box-shadow: 0 19px 42px rgba(0, 73, 122, 0.16);
}

.trust-assurance::before {
  content: "";
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 12px;
}

.trust-assurance::after {
  content: "PROMISE";
  position: absolute;
  right: -17px;
  bottom: 43px;
  color: rgba(255, 255, 255, 0.04);
  font-family: Arial, sans-serif;
  font-size: 72px;
  font-weight: 900;
  letter-spacing: 0.08em;
  transform: rotate(-90deg) translateX(100%);
  transform-origin: right bottom;
}

.trust-assurance__mark {
  position: relative;
  z-index: 1;
  display: grid;
  width: 130px;
  height: 144px;
  place-items: center;
}

.trust-assurance__photo {
  position: relative;
  z-index: 1;
  width: 100%;
  margin-top: 22px;
  border-radius: 12px;
  overflow: hidden;
}

.trust-assurance__photo img {
  display: block;
  width: 100%;
  height: 150px;
  object-fit: cover;
}

.trust-assurance__mark svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: #a9e0fa;
  stroke-width: 2;
}

.trust-assurance__mark svg path:last-child {
  stroke: #ffbe63;
  stroke-width: 5;
}

.trust-assurance__mark span {
  position: relative;
  margin-top: 93px;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.trust-assurance__lead {
  position: relative;
  z-index: 1;
  margin: 25px 0 22px;
}

.trust-assurance__lead span,
.trust-assurance__lead strong {
  display: block;
}

.trust-assurance__lead span {
  margin-bottom: 7px;
  color: #b9ddef;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.07em;
}

.trust-assurance__lead strong {
  font-family: "Yu Mincho", serif;
  font-size: 25px;
  line-height: 1.55;
  letter-spacing: 0.07em;
}

.trust-assurance__divider {
  position: relative;
  z-index: 1;
  width: 65%;
  height: 1px;
  margin-bottom: 21px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent);
}

.trust-assurance ul {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: left;
}

.trust-assurance li {
  display: flex;
  padding: 11px 7px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  align-items: center;
  color: #e9f6fc;
  font-size: 11px;
  font-weight: 700;
}

.trust-assurance li span {
  margin-right: 12px;
  color: #73c9ef;
  font-family: Georgia, serif;
  font-size: 17px;
  font-style: italic;
}

.trust-assurance__name {
  position: relative;
  z-index: 1;
  margin: auto 0 0;
  font-family: "Yu Mincho", serif;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.trust-assurance__name small {
  display: block;
  margin-bottom: 2px;
  color: #acd9ed;
  font-family: sans-serif;
  font-size: 8px;
  font-weight: 600;
}

.trust-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.trust-card {
  position: relative;
  min-height: 328px;
  padding: 25px 23px 23px;
  overflow: hidden;
  border: 1px solid #d9e8ef;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 27px rgba(17, 66, 95, 0.065);
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.trust-card::after {
  content: "";
  position: absolute;
  right: -36px;
  bottom: -36px;
  width: 105px;
  height: 105px;
  border-radius: 50%;
  background: #edf8fd;
}

.trust-card--privacy::after,
.trust-card--insurance::after {
  background: #fff3e4;
}

.trust-card:hover {
  border-color: #b9d7e6;
  box-shadow: 0 17px 34px rgba(17, 66, 95, 0.1);
  transform: translateY(-3px);
}

.trust-card__top {
  display: flex;
  margin-bottom: 13px;
  align-items: center;
}

.trust-card__number {
  color: #dbe9ef;
  font-family: Georgia, serif;
  font-size: 32px;
  font-style: italic;
  font-weight: 700;
}

.trust-card__icon {
  display: grid;
  width: 49px;
  height: 49px;
  margin-left: 12px;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.trust-card--privacy .trust-card__icon,
.trust-card--insurance .trust-card__icon {
  color: var(--orange-deep);
  background: #fff1df;
}

.trust-card__icon svg {
  width: 30px;
  height: 30px;
  stroke-width: 1.7;
}

.trust-card__category {
  margin-left: auto;
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 0.17em;
}

.trust-card--privacy .trust-card__category,
.trust-card--insurance .trust-card__category {
  color: var(--orange-deep);
}

.trust-card__question {
  margin: 0 0 6px;
  color: #8496a0;
  font-size: 9px;
  font-weight: 700;
}

.trust-card h3 {
  margin: 0 0 12px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 16px;
  line-height: 1.55;
}

.trust-card h3 strong {
  color: var(--blue-deep);
  font-size: 19px;
}

.trust-card--privacy h3 strong,
.trust-card--insurance h3 strong {
  color: var(--orange-deep);
}

.trust-card__description {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #6d818c;
  font-size: 10px;
  line-height: 1.8;
}

.trust-card__proof {
  position: relative;
  z-index: 1;
  display: flex;
  margin-top: 15px;
  gap: 5px;
}

.trust-card__proof span {
  padding: 4px 8px;
  border-radius: 3px;
  color: var(--blue-deep);
  background: var(--blue-pale);
  font-size: 8px;
  font-weight: 800;
}

.trust-card--privacy .trust-card__proof span,
.trust-card--insurance .trust-card__proof span {
  color: #965719;
  background: #fff1df;
}

.trust-credentials {
  display: grid;
  min-height: 116px;
  margin-top: 25px;
  overflow: hidden;
  border: 1px solid #cfe1e9;
  border-radius: 13px;
  background: #f6fbfd;
  grid-template-columns: 1.15fr repeat(3, 1fr);
  align-items: stretch;
}

.trust-credentials__intro {
  display: flex;
  padding: 20px 25px;
  color: #fff;
  background: var(--blue-deep);
  align-items: center;
}

.trust-credentials__intro > svg {
  width: 47px;
  height: 47px;
  margin-right: 12px;
  color: #a8ddf5;
}

.trust-credentials__intro p {
  margin: 0;
}

.trust-credentials__intro span,
.trust-credentials__intro strong {
  display: block;
}

.trust-credentials__intro span {
  color: #b9dbea;
  font-size: 8px;
  font-weight: 700;
}

.trust-credentials__intro strong {
  margin-top: 4px;
  font-family: "Yu Mincho", serif;
  font-size: 17px;
  letter-spacing: 0.04em;
}

.trust-credential {
  display: flex;
  padding: 19px 15px;
  border-right: 1px solid #dbe8ed;
  align-items: center;
  justify-content: center;
}

.trust-credential:last-child {
  border-right: 0;
}

.trust-credential__check {
  display: grid;
  width: 27px;
  height: 27px;
  margin-right: 8px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  place-items: center;
}

.trust-credential__check svg {
  width: 16px;
  stroke-width: 2.7;
}

.trust-credential p {
  margin: 0;
}

.trust-credential small,
.trust-credential strong {
  display: block;
}

.trust-credential small {
  margin-bottom: 3px;
  color: #7b919c;
  font-size: 7px;
  font-weight: 700;
}

.trust-credential strong {
  color: var(--blue-ink);
  font-size: 10px;
  line-height: 1.4;
}

.representative {
  position: relative;
  padding: 96px 20px 90px;
  overflow: hidden;
  background: linear-gradient(180deg, #fff8ee, #fdf1de);
}

.representative__inner {
  width: min(100%, 980px);
  margin: 0 auto;
}

.representative-heading {
  margin-bottom: 42px;
  text-align: center;
}

.representative-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--orange-deep);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.representative-heading__en::before,
.representative-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.representative-heading__label {
  margin: 0 0 5px;
  color: #93794f;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.representative-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.representative-heading h2 span {
  position: relative;
  color: var(--orange-deep);
}

.representative-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #ffdfae;
}

.representative-heading > p:last-child {
  margin: 15px 0 0;
  color: #687f8c;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.representative-card {
  display: grid;
  padding: 38px 42px;
  border: 1px solid #f0ddc0;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(120, 82, 22, 0.1);
  grid-template-columns: 220px 1fr;
  gap: 36px;
  align-items: start;
}

.representative-card__photo {
  text-align: center;
}

.representative-card__photo img {
  display: block;
  width: 100%;
  max-width: 220px;
  height: auto;
  margin: 0 auto;
  aspect-ratio: 1;
  border: 1px solid #eadbc4;
  border-radius: 16px;
  background: var(--blue-pale);
  object-fit: cover;
}

.representative-card__photo-note {
  display: inline-block;
  margin-top: 9px;
  color: #a08a68;
  font-size: 11px;
  font-weight: 600;
}

.representative-card__message {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  line-height: 2.1;
}

.representative-card__sign {
  display: flex;
  margin-top: 18px;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.representative-card__sign small {
  color: #8b9aa5;
  font-size: 11px;
  font-weight: 600;
}

.representative-card__sign strong {
  font-family: "Yu Mincho", serif;
  font-size: 21px;
  letter-spacing: 0.12em;
}

.representative-card__points {
  display: flex;
  margin: 22px 0 0;
  padding: 15px 18px;
  border-radius: 11px;
  background: #fdf5e7;
  list-style: none;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 22px;
}

.representative-card__points li {
  display: flex;
  color: var(--ink);
  align-items: center;
  font-size: 13px;
  font-weight: 700;
  gap: 6px;
}

.representative-card__points svg {
  width: 15px;
  color: var(--orange-deep);
  stroke-width: 2.4;
}

@media (max-width: 820px) {
  .representative {
    padding: 64px 16px 60px;
  }

  .representative-heading {
    margin-bottom: 30px;
  }

  .representative-heading h2 {
    font-size: 29px;
  }

  .representative-heading > p:last-child {
    font-size: 13px;
  }

  .representative-card {
    padding: 22px 17px;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .representative-card__photo img {
    max-width: 168px;
  }

  .representative-card__message {
    font-size: 14px;
    line-height: 2;
  }

  .representative-card__sign strong {
    font-size: 19px;
  }

  .representative-card__points {
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
  }
}

.comparison {
  position: relative;
  padding: 104px 20px 94px;
  overflow: hidden;
  background:
    linear-gradient(rgba(240, 248, 252, 0.94), rgba(240, 248, 252, 0.94)),
    radial-gradient(circle at 1px 1px, #6ba9ca 1px, transparent 1px);
  background-size: auto, 24px 24px;
}

.comparison::before {
  content: "VS";
  position: absolute;
  top: 5px;
  left: 50%;
  color: rgba(0, 104, 183, 0.035);
  font-family: Arial, sans-serif;
  font-size: 240px;
  font-weight: 900;
  line-height: 1;
  transform: translateX(-50%);
}

.comparison__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.comparison-heading {
  text-align: center;
}

.comparison-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.comparison-heading__en::before,
.comparison-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.comparison-heading__label {
  margin: 0 0 5px;
  color: #607c8a;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.comparison-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.comparison-heading h2 span {
  position: relative;
  color: var(--blue);
}

.comparison-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #bce6fa;
}

.comparison-heading > p:last-child {
  margin: 15px 0 0;
  color: #687f8c;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.comparison-table-wrap {
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid #ccdee7;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(17, 66, 95, 0.11);
}

.comparison-table {
  width: 100%;
  table-layout: fixed;
  border-spacing: 0;
  border-collapse: separate;
}

.comparison-table th,
.comparison-table td {
  box-sizing: border-box;
}

.comparison-table thead th {
  height: 112px;
  border-right: 1px solid rgba(255, 255, 255, 0.13);
  color: #fff;
  background: #596e7a;
  font-size: 14px;
  text-align: center;
}

.comparison-table thead th:first-child {
  width: 21%;
  background: #345365;
}

.comparison-table thead th:nth-child(2) {
  position: relative;
  width: 41%;
  background: linear-gradient(120deg, #0063a8, #007fc5);
}

.comparison-table thead th:nth-child(3) {
  width: 38%;
}

.comparison-table__recommend {
  position: absolute;
  top: 0;
  left: 50%;
  padding: 4px 17px 5px;
  border-radius: 0 0 7px 7px;
  color: #814400;
  background: #ffc96f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  transform: translateX(-50%);
}

.comparison-table__brand {
  display: inline-block;
  width: 205px;
  margin-top: 14px;
  padding: 7px 12px;
  border-radius: 7px;
  background: #fff;
}

.comparison-table__brand img {
  display: block;
  width: 100%;
  height: auto;
}

.comparison-table__general span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.comparison-table__general span::before {
  content: "";
  width: 25px;
  height: 25px;
  border: 2px solid #cbd4d8;
  border-radius: 50%;
  background: linear-gradient(#cbd4d8, #cbd4d8) 50% 7px / 8px 8px no-repeat;
}

.comparison-table tbody th,
.comparison-table tbody td {
  height: 124px;
  border-right: 1px solid #dce7ec;
  border-bottom: 1px solid #dce7ec;
}

.comparison-table tbody tr:last-child th,
.comparison-table tbody tr:last-child td {
  border-bottom: 0;
}

.comparison-table tbody td:last-child {
  border-right: 0;
}

.comparison-table tbody th {
  padding: 15px 11px;
  color: var(--blue-ink);
  background: #f8fbfc;
  font-size: 16px;
  text-align: center;
}

.comparison-table tbody th > span:last-child {
  display: block;
  margin-top: 5px;
}

.comparison-table__icon {
  display: grid;
  width: 48px;
  height: 48px;
  margin: 0 auto;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.comparison-table__icon svg {
  width: 30px;
  height: 30px;
  stroke-width: 1.7;
}

.comparison-table tbody td {
  padding: 18px 24px;
  color: #647a86;
  background: #fff;
  font-size: 15px;
  line-height: 1.65;
}

.comparison-table tbody td.comparison-table__positive {
  position: relative;
  color: var(--blue-ink);
  background: #eff8fd;
}

.comparison-table tbody td.comparison-table__positive::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 3px;
  background: var(--blue);
}

.comparison-table tbody td {
  display: table-cell;
  vertical-align: middle;
}

.comparison-table tbody td > .comparison-table__check,
.comparison-table tbody td > .comparison-table__minus {
  display: inline-grid;
  width: 34px;
  height: 34px;
  margin-right: 10px;
  border-radius: 50%;
  vertical-align: middle;
  place-items: center;
}

.comparison-table__check {
  color: #fff;
  background: var(--blue);
}

.comparison-table__check svg {
  width: 20px;
  stroke-width: 2.8;
}

.comparison-table__minus {
  color: #899ba4;
  background: #edf1f3;
  font-size: 21px;
}

.comparison-table tbody td > p {
  display: inline-block;
  width: calc(100% - 51px);
  margin: 0;
  vertical-align: middle;
}

.comparison-table tbody td strong,
.comparison-table tbody td small {
  display: block;
}

.comparison-table tbody td strong {
  color: var(--blue-deep);
  font-size: 18px;
}

.comparison-table tbody td small {
  margin-top: 4px;
  color: #668594;
  font-size: 13px;
}

.comparison-note {
  margin: 13px 0 0;
  color: #758994;
  font-size: 13px;
  line-height: 1.7;
  text-align: right;
}

.pricing {
  position: relative;
  padding: 105px 20px 94px;
  overflow: hidden;
  background: #fff;
}

.pricing::before,
.pricing::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.pricing::before {
  top: 180px;
  left: -170px;
  width: 390px;
  height: 390px;
  border: 70px solid rgba(0, 104, 183, 0.035);
}

.pricing::after {
  right: -100px;
  bottom: 270px;
  width: 260px;
  height: 260px;
  background: rgba(242, 138, 33, 0.045);
}

.pricing__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.pricing-heading {
  margin-bottom: 48px;
  text-align: center;
}

.pricing-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.pricing-heading__en::before,
.pricing-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.pricing-heading__label {
  margin: 0 0 5px;
  color: #607b89;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.pricing-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.pricing-heading h2 span {
  position: relative;
  color: var(--blue);
}

.pricing-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #bee8fa;
}

.pricing-heading > p:last-child {
  margin: 15px 0 0;
  color: #687f8c;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.pricing-packs {
  overflow: hidden;
  border: 1px solid #d2e3eb;
  border-radius: 18px;
  background: #f5fafc;
  box-shadow: 0 18px 42px rgba(17, 66, 95, 0.1);
}

.pricing-packs__lead {
  display: flex;
  min-height: 92px;
  padding: 20px 31px;
  color: #fff;
  background:
    radial-gradient(circle at 85% 20%, rgba(255, 255, 255, 0.13), transparent 26%),
    linear-gradient(115deg, #06466e, #0074b2);
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.pricing-packs__lead p {
  margin: 0;
}

.pricing-packs__lead p span,
.pricing-packs__lead p strong {
  display: block;
}

.pricing-packs__lead p span {
  margin-bottom: 4px;
  color: #9bdaf5;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.pricing-packs__lead p strong {
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 25px;
  letter-spacing: 0.03em;
}

.pricing-packs__lead > small {
  display: inline-flex;
  min-height: 38px;
  padding: 7px 15px;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 999px;
  color: #fff5e7;
  background: rgba(255, 255, 255, 0.1);
  align-items: center;
  font-size: 13px;
  font-weight: 800;
}

.pricing-pack-grid {
  display: grid;
  padding: 19px;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.pricing-pack {
  position: relative;
  min-height: 330px;
  padding: 24px 22px 20px;
  overflow: hidden;
  border: 1px solid #d9e7ed;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(17, 66, 95, 0.055);
}

.pricing-pack::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 5px;
  background: var(--blue);
}

.pricing-pack:nth-child(even)::before {
  background: var(--orange);
}

.pricing-pack--recommended {
  border: 2px solid var(--orange);
  background: linear-gradient(180deg, #fffaf2, #fff);
  box-shadow: 0 12px 28px rgba(218, 110, 14, 0.15);
}

.pricing-pack__badge {
  position: absolute;
  top: 14px;
  right: -31px;
  width: 120px;
  padding: 5px 0;
  color: #fff;
  background: var(--orange);
  font-size: 10px;
  font-weight: 900;
  text-align: center;
  transform: rotate(39deg);
}

.pricing-pack__head {
  display: grid;
  grid-template-columns: 58px 1fr;
  align-items: center;
  column-gap: 12px;
}

.pricing-pack__head > span {
  display: grid;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  place-items: center;
  grid-row: 1 / 3;
  font-family: Arial, sans-serif;
  font-size: 24px;
  font-weight: 900;
}

.pricing-pack:nth-child(even) .pricing-pack__head > span,
.pricing-pack--recommended .pricing-pack__head > span {
  background: var(--orange);
}

.pricing-pack__head h3 {
  align-self: end;
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 22px;
  line-height: 1.3;
}

.pricing-pack__head small {
  align-self: start;
  margin-top: 3px;
  color: #6f8692;
  font-size: 13px;
  font-weight: 700;
}

.pricing-pack__vehicle {
  display: flex;
  min-height: 91px;
  margin: 17px 0 12px;
  border-radius: 9px;
  color: var(--blue);
  background: #edf7fb;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.pricing-pack:nth-child(even) .pricing-pack__vehicle {
  color: var(--orange-deep);
  background: #fff4e7;
}

.pricing-pack__vehicle svg {
  width: 99px;
  height: 54px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.4;
}

.pricing-pack__vehicle span {
  margin-top: 1px;
  font-size: 12px;
  font-weight: 800;
}

.pricing-pack__use {
  min-height: 48px;
  margin: 0;
  color: #5f7784;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
  text-align: center;
}

.pricing-pack__price {
  display: flex;
  min-height: 62px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed #cadce4;
  align-items: flex-end;
  justify-content: center;
  flex-direction: column;
}

.pricing-pack__price > small {
  color: #82959e;
  font-size: 12px;
  text-decoration: line-through;
}

.pricing-pack__price > span {
  color: #7d919a;
  font-size: 12px;
  font-weight: 700;
}

.pricing-pack__price > strong {
  color: var(--orange-deep);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 18px;
  line-height: 1.2;
}

.pricing-pack__price > strong b {
  font-family: Arial, sans-serif;
  font-size: 30px;
  letter-spacing: -0.02em;
}

.pricing-pack__price > .pricing-pack__consult {
  margin-top: 4px;
  font-size: 27px;
  line-height: 1;
}

.pricing-packs__notes {
  padding: 0 22px 18px;
  color: #6e838e;
}

.pricing-packs__notes p {
  margin: 3px 0 0;
  font-size: 12px;
  line-height: 1.65;
}

.pricing-structure {
  display: grid;
  overflow: hidden;
  border: 1px solid #d4e4eb;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(17, 66, 95, 0.1);
  grid-template-columns: 1.05fr 0.95fr;
}

.pricing-structure__factors {
  padding: 41px 39px 36px;
  background: #f5fafc;
}

.pricing-structure__title > span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.pricing-structure__title h3 {
  margin: 7px 0 11px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 25px;
  line-height: 1.5;
}

.pricing-structure__title > p {
  margin: 0;
  color: #6d818c;
  font-size: 15px;
  line-height: 1.8;
}

.pricing-factor-grid {
  display: grid;
  margin-top: 25px;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.pricing-factor {
  display: flex;
  min-height: 87px;
  padding: 12px 13px;
  border: 1px solid #dce9ef;
  border-radius: 8px;
  background: #fff;
  align-items: center;
}

.pricing-factor:last-child {
  grid-column: 1 / -1;
}

.pricing-factor__icon {
  display: grid;
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  margin-right: 10px;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.pricing-factor__icon svg {
  width: 29px;
  height: 29px;
}

.pricing-factor p {
  margin: 0;
}

.pricing-factor small,
.pricing-factor strong,
.pricing-factor p > span {
  display: block;
}

.pricing-factor small {
  color: #a3b4bc;
  font-family: Georgia, serif;
  font-size: 10px;
  font-style: italic;
}

.pricing-factor strong {
  color: var(--blue-ink);
  font-size: 14px;
}

.pricing-factor p > span {
  margin-top: 2px;
  color: #788d97;
  font-size: 12px;
}

.pricing-formula {
  position: relative;
  padding: 40px 38px 34px;
  color: #fff;
  background:
    radial-gradient(circle at 80% 10%, rgba(255, 255, 255, 0.14), transparent 25%),
    linear-gradient(145deg, #07527f, #006ead);
}

.pricing-formula::before {
  content: "¥";
  position: absolute;
  right: -8px;
  bottom: -70px;
  color: rgba(255, 255, 255, 0.045);
  font-family: Arial, sans-serif;
  font-size: 250px;
  font-weight: 900;
}

.pricing-formula__label {
  position: relative;
  z-index: 1;
  color: #8fd3f2;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.pricing-formula > h3 {
  position: relative;
  z-index: 1;
  margin: 5px 0 19px;
  font-family: "Yu Mincho", serif;
  font-size: 25px;
}

.pricing-formula__calculation {
  position: relative;
  z-index: 1;
}

.pricing-formula__cost,
.pricing-formula__purchase,
.pricing-formula__result {
  display: grid;
  min-height: 69px;
  padding: 11px 15px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.09);
  grid-template-columns: 1fr 1fr;
  align-items: center;
}

.pricing-formula__purchase {
  border-color: rgba(255, 190, 99, 0.45);
  background: rgba(255, 169, 49, 0.14);
}

.pricing-formula__result {
  border-color: #fff;
  color: var(--blue-deep);
  background: #fff;
  box-shadow: 0 8px 21px rgba(0, 38, 66, 0.18);
}

.pricing-formula__cost > span,
.pricing-formula__purchase > span,
.pricing-formula__result > span {
  font-size: 12px;
  font-weight: 700;
}

.pricing-formula__cost > strong,
.pricing-formula__purchase > strong,
.pricing-formula__result > strong {
  font-size: 17px;
  text-align: right;
}

.pricing-formula__result > strong {
  color: var(--orange-deep);
  font-size: 20px;
}

.pricing-formula__cost > small,
.pricing-formula__purchase > small,
.pricing-formula__result > small {
  margin-top: 3px;
  color: #b7d9e9;
  font-size: 10px;
  grid-column: 1 / -1;
}

.pricing-formula__result > small {
  color: #64818f;
}

.pricing-formula__operator {
  height: 26px;
  color: #ffbd66;
  font-size: 24px;
  font-weight: 300;
  line-height: 26px;
  text-align: center;
}

.pricing-formula__operator--equal {
  color: #fff;
  font-size: 21px;
}

.pricing-formula__example {
  position: relative;
  z-index: 1;
  margin-top: 18px;
  padding: 13px 14px;
  border-radius: 8px;
  background: rgba(0, 38, 64, 0.23);
}

.pricing-formula__example > span {
  display: inline-block;
  margin-bottom: 7px;
  padding: 3px 8px;
  border-radius: 3px;
  color: var(--blue-deep);
  background: #fff;
  font-size: 10px;
  font-weight: 800;
}

.pricing-formula__example p {
  display: flex;
  margin: 0;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
}

.pricing-formula__example b {
  font-size: 11px;
}

.pricing-formula__example em {
  color: #83ccea;
  font-size: 16px;
  font-style: normal;
}

.pricing-formula__example strong {
  color: #ffbd66;
  font-size: 13px;
}

.pricing-formula__example > small {
  display: block;
  margin-top: 7px;
  color: #a6cada;
  font-size: 9px;
}

.pricing-room-guide {
  margin-top: 27px;
  padding: 28px 28px 22px;
  border: 1px solid #d6e6ed;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 29px rgba(17, 66, 95, 0.07);
}

.pricing-room-guide__heading {
  display: grid;
  margin-bottom: 20px;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 5px 20px;
}

.pricing-room-guide__heading > span {
  grid-column: 1 / -1;
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.pricing-room-guide__heading h3 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 24px;
}

.pricing-room-guide__heading p {
  margin: 0;
  color: #6b818d;
  font-size: 13px;
}

.pricing-room-guide > ul {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
  list-style: none;
}

.pricing-room-guide > ul li {
  position: relative;
  display: flex;
  min-height: 135px;
  padding: 17px 9px 14px;
  border: 1px solid #dce8ed;
  border-radius: 8px;
  background: #f8fbfc;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}

.pricing-room-guide > ul li:nth-child(even) {
  background: #fff9f1;
}

.pricing-room-guide > ul li > span {
  color: var(--blue-deep);
  font-size: 15px;
  font-weight: 800;
}

.pricing-room-guide > ul li:nth-child(even) > span {
  color: #a95a15;
}

.pricing-room-guide > ul small {
  min-height: 33px;
  margin-top: 4px;
  color: #778d97;
  font-size: 11px;
  line-height: 1.5;
}

.pricing-room-guide > ul strong {
  margin-top: 7px;
  color: var(--orange-deep);
  font-family: "Yu Mincho", serif;
  font-size: 17px;
}

.pricing-room-guide > ul strong b {
  font-family: Arial, sans-serif;
  font-size: 23px;
}

.pricing-room-guide__recommended {
  border: 2px solid var(--orange) !important;
  background: #fff7e8 !important;
}

.pricing-room-guide__recommended em {
  position: absolute;
  top: -10px;
  padding: 3px 12px;
  border-radius: 999px;
  color: #fff;
  background: var(--orange);
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
}

.pricing-room-guide__note {
  margin: 13px 0 0;
  color: #788d97;
  font-size: 11px;
  line-height: 1.7;
  text-align: center;
}

.pricing-promises {
  display: grid;
  margin-top: 23px;
  grid-template-columns: repeat(3, 1fr);
  gap: 13px;
}

.pricing-promise {
  position: relative;
  min-height: 363px;
  padding: 28px 24px 25px;
  overflow: hidden;
  border: 1px solid #d9e7ed;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 11px 27px rgba(17, 66, 95, 0.065);
}

.pricing-promise::after {
  content: "";
  position: absolute;
  right: -38px;
  bottom: -38px;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: #edf8fd;
}

.pricing-promise--orange::after {
  background: #fff2df;
}

.pricing-promise__number {
  position: absolute;
  z-index: 1;
  top: 18px;
  right: 20px;
  color: #fff;
  font-family: Georgia, serif;
  font-size: 38px;
  font-style: italic;
  font-weight: 700;
  text-shadow: 0 2px 10px rgba(7, 45, 70, 0.6);
}

.pricing-promise__photo {
  margin: -28px -24px 18px;
}

.pricing-promise__photo img {
  display: block;
  width: 100%;
  height: 150px;
  object-fit: cover;
}

.pricing-promise__tag {
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.pricing-promise--orange .pricing-promise__tag {
  color: var(--orange-deep);
}

.pricing-promise h3 {
  margin: 6px 0 13px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 18px;
  line-height: 1.55;
}

.pricing-promise h3 strong {
  color: var(--blue-deep);
  font-size: 20px;
}

.pricing-promise--orange h3 strong {
  color: var(--orange-deep);
}

.pricing-promise p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #687f8b;
  font-size: 16px;
  line-height: 1.85;
}

.payment-methods {
  display: grid;
  min-height: 188px;
  margin-top: 22px;
  padding: 27px 30px;
  border: 1px solid #d7e6ec;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 10px 25px rgba(17, 66, 95, 0.06);
  grid-template-columns: 0.62fr 1.38fr;
  align-items: center;
  gap: 35px;
}

.payment-methods__heading > span {
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.payment-methods__heading h3 {
  margin: 7px 0 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 24px;
  line-height: 1.55;
}

.payment-methods__cards {
  display: flex;
  min-height: 128px;
  padding: 16px 18px;
  border: 1px solid #d8e6ec;
  border-radius: 9px;
  background: #f9fcfd;
  align-items: center;
  justify-content: center;
}

.payment-methods__cards img {
  display: block;
  width: 100%;
  height: auto;
}

.cases-voices {
  position: relative;
  padding: 105px 20px 94px;
  overflow: hidden;
  background:
    linear-gradient(rgba(244, 249, 251, 0.95), rgba(244, 249, 251, 0.95)),
    radial-gradient(circle at 1px 1px, #7eb4ce 1px, transparent 1px);
  background-size: auto, 25px 25px;
}

.cases-voices::before {
  content: "VOICE";
  position: absolute;
  top: 250px;
  right: -35px;
  color: rgba(0, 104, 183, 0.025);
  font-family: Arial, sans-serif;
  font-size: 230px;
  font-weight: 900;
  line-height: 1;
  writing-mode: vertical-rl;
}

.cases-voices__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.cases-heading {
  margin-bottom: 48px;
  text-align: center;
}

.cases-heading__en,
.voices-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.cases-heading__en::before,
.cases-heading__en::after,
.voices-heading__en::before,
.voices-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.cases-heading__label {
  margin: 0 0 5px;
  color: #607c8a;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.cases-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.cases-heading h2 span {
  position: relative;
  color: var(--blue);
}

.cases-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #bee8fa;
}

.cases-heading > p:last-child {
  margin: 15px 0 0;
  color: #687f8c;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.featured-case {
  overflow: hidden;
  border: 1px solid #d4e3ea;
  border-radius: 19px;
  background: #fff;
  box-shadow: 0 19px 44px rgba(17, 66, 95, 0.11);
}

.featured-case__header {
  display: flex;
  min-height: 116px;
  padding: 23px 31px;
  color: #fff;
  background:
    radial-gradient(circle at 80% 10%, rgba(255, 255, 255, 0.14), transparent 24%),
    linear-gradient(115deg, #07496f, #0071b2);
  align-items: center;
  justify-content: space-between;
}

.featured-case__title > span {
  color: #98d3ef;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.featured-case__title > span b {
  margin-left: 5px;
  color: #ffbf68;
  font-family: Georgia, serif;
  font-size: 26px;
  font-style: italic;
}

.featured-case__title p {
  margin: 3px 0 0;
}

.featured-case__title small,
.featured-case__title strong {
  display: block;
}

.featured-case__title small {
  margin-bottom: 3px;
  color: #b7d9e9;
  font-size: 12px;
  font-weight: 700;
}

.featured-case__title strong {
  font-family: "Yu Mincho", serif;
  font-size: 22px;
  letter-spacing: 0.04em;
}

.featured-case__facts {
  display: flex;
  gap: 8px;
}

.featured-case__facts > div {
  min-width: 112px;
  padding: 10px 13px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.07);
  text-align: center;
}

.featured-case__facts small,
.featured-case__facts strong {
  display: block;
}

.featured-case__facts small {
  margin-bottom: 3px;
  color: #aed6e8;
  font-size: 10px;
  font-weight: 700;
}

.featured-case__facts strong {
  font-size: 13px;
}

.featured-case__facts strong b {
  color: #ffbf68;
  font-family: Arial, sans-serif;
  font-size: 20px;
}

.before-after {
  position: relative;
  display: grid;
  padding: 27px;
  background: #edf4f7;
  grid-template-columns: 1fr 52px 1fr;
  align-items: center;
}

.before-after__item {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 21px rgba(14, 53, 76, 0.11);
}

.before-after__item img {
  display: block;
  width: 100%;
  height: 290px;
  object-fit: cover;
}

.before-after__label {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  min-width: 91px;
  padding: 7px 11px;
  border-radius: 6px;
  color: #fff;
  background: rgba(29, 49, 60, 0.84);
  backdrop-filter: blur(6px);
}

.before-after__item--after .before-after__label {
  background: rgba(0, 104, 183, 0.9);
}

.before-after__label span,
.before-after__label b {
  display: block;
}

.before-after__label span {
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.before-after__label b {
  margin-top: 2px;
  font-size: 12px;
}

.before-after__arrow {
  position: relative;
  z-index: 3;
  display: grid;
  width: 45px;
  height: 45px;
  margin: auto;
  border: 4px solid #edf4f7;
  border-radius: 50%;
  color: #fff;
  background: var(--orange);
  place-items: center;
}

.before-after__arrow svg {
  width: 23px;
  stroke-width: 2.5;
}

.before-after__complete {
  position: absolute;
  right: 12px;
  bottom: 12px;
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  color: #fff;
  background: var(--green);
  align-items: center;
  font-size: 11px;
  font-weight: 800;
}

.before-after__complete svg {
  width: 15px;
  margin-right: 4px;
  stroke-width: 2.8;
}

.featured-case__story {
  display: grid;
  padding: 34px 38px 31px;
  grid-template-columns: 1.02fr 0.99fr 0.99fr;
  gap: 25px;
}

.featured-case__story-title > span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.featured-case__story-title h3 {
  margin: 6px 0 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 18px;
  line-height: 1.6;
}

.featured-case__story-title h3 strong {
  color: var(--blue-deep);
  font-size: 20px;
}

.featured-case__story > p {
  margin: 0;
  padding-left: 23px;
  border-left: 1px solid #d9e5ea;
  color: #667e8a;
  font-size: 16px;
  line-height: 1.9;
}

.staff-comment {
  display: flex;
  margin: 0 27px 27px;
  padding: 20px 25px;
  border: 1px solid #d7e7ee;
  border-radius: 10px;
  background: #f3f9fc;
  align-items: center;
}

.staff-comment img {
  width: 76px;
  height: 76px;
  flex: 0 0 auto;
  margin-right: 19px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #d8edf7;
  object-fit: cover;
  box-shadow: 0 5px 13px rgba(17, 66, 95, 0.12);
}

.staff-comment span {
  display: inline-block;
  margin-bottom: 5px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
}

.staff-comment p {
  margin: 0;
  color: #5f7885;
  font-size: 15px;
  line-height: 1.85;
}

.case-list-heading {
  margin: 64px 0 23px;
  text-align: center;
}

.case-list-heading span {
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.case-list-heading h3 {
  margin: 5px 0 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 26px;
}

.case-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.case-card {
  overflow: hidden;
  border: 1px solid #d6e4ea;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 29px rgba(17, 66, 95, 0.07);
}

.case-card__image {
  position: relative;
  overflow: hidden;
}

.case-card__image img {
  display: block;
  width: 100%;
  height: 245px;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.case-card:hover .case-card__image img {
  transform: scale(1.03);
}

.case-card__image > span,
.case-card__image > b {
  position: absolute;
  color: #fff;
}

.case-card__image > span {
  bottom: 12px;
  left: 12px;
  padding: 5px 10px;
  border-radius: 4px;
  background: rgba(0, 104, 183, 0.9);
  font-size: 11px;
  font-weight: 800;
}

.case-card__image > b {
  top: 12px;
  right: 12px;
  font-family: Arial, sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.case-card__content {
  padding: 25px 25px 23px;
}

.case-card__category {
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.07em;
}

.case-card h3 {
  margin: 6px 0 13px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 19px;
  line-height: 1.55;
}

.case-card h3 strong {
  color: var(--blue-deep);
  font-size: 21px;
}

.case-card__content > p {
  margin: 0;
  color: #687f8b;
  font-size: 16px;
  line-height: 1.85;
}

.case-card dl {
  display: grid;
  margin: 20px 0 0;
  border: 1px solid #dbe7ec;
  border-radius: 7px;
  background: #f7fbfd;
  grid-template-columns: repeat(3, 1fr);
}

.case-card dl > div {
  padding: 10px 7px;
  border-right: 1px solid #dbe7ec;
  text-align: center;
}

.case-card dl > div:last-child {
  border-right: 0;
}

.case-card dt,
.case-card dd {
  margin: 0;
}

.case-card dt {
  margin-bottom: 4px;
  color: #78909b;
  font-size: 10px;
  font-weight: 700;
}

.case-card dd {
  color: var(--blue-ink);
  font-size: 12px;
  font-weight: 800;
}

.case-card dd b {
  color: var(--orange-deep);
  font-family: Arial, sans-serif;
  font-size: 17px;
}

.voices-heading {
  margin: 84px 0 29px;
  text-align: center;
}

.voices-heading h3 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 31px;
}

.voices-heading h3 span {
  color: var(--blue);
}

.voices-heading > p {
  margin: 10px 0 0;
  color: #687f8b;
  font-size: 16px;
}

.voice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.voice-card {
  position: relative;
  min-height: 475px;
  padding: 27px 24px 23px;
  overflow: hidden;
  border: 1px solid #d6e5eb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(17, 66, 95, 0.07);
}

.voice-card::after {
  content: "";
  position: absolute;
  right: -43px;
  bottom: -43px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: #eaf7fd;
}

.voice-card--orange::after {
  background: #fff1df;
}

.voice-card__quote {
  position: absolute;
  top: 5px;
  right: 18px;
  color: #e1eff5;
  font-family: Georgia, serif;
  font-size: 76px;
  line-height: 1;
}

.voice-card--orange .voice-card__quote {
  color: #f9e7d0;
}

.voice-card__customer {
  position: relative;
  z-index: 1;
  display: flex;
  margin-bottom: 18px;
  align-items: center;
}

.voice-card__customer img {
  width: 72px;
  height: 72px;
  flex: 0 0 auto;
  margin-right: 13px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #dceff7;
  object-fit: cover;
  box-shadow: 0 5px 13px rgba(17, 66, 95, 0.11);
}

.voice-card__customer p {
  margin: 0;
}

.voice-card__customer strong,
.voice-card__customer span,
.voice-card__customer small {
  display: block;
}

.voice-card__customer strong {
  color: var(--ink);
  font-size: 17px;
}

.voice-card__customer span {
  color: #78909b;
  font-size: 12px;
}

.voice-card__customer small {
  display: inline-block;
  margin-top: 4px;
  padding: 3px 7px;
  border-radius: 3px;
  color: var(--blue-deep);
  background: var(--blue-pale);
  font-size: 10px;
  font-weight: 800;
}

.voice-card--orange .voice-card__customer small {
  color: #965719;
  background: #fff1df;
}

.voice-card h4 {
  position: relative;
  z-index: 1;
  margin: 0 0 14px;
  color: var(--blue-deep);
  font-family: "Yu Mincho", serif;
  font-size: 20px;
  line-height: 1.55;
}

.voice-card--orange h4 {
  color: var(--orange-deep);
}

.voice-card__text {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #647c88;
  font-size: 16px;
  line-height: 1.9;
}

.voice-card__tags {
  position: relative;
  z-index: 1;
  display: flex;
  margin-top: 17px;
  flex-wrap: wrap;
  gap: 5px;
}

.voice-card__tags span {
  padding: 4px 8px;
  border-radius: 4px;
  color: var(--blue-deep);
  background: var(--blue-pale);
  font-size: 11px;
  font-weight: 800;
}

.voice-card--orange .voice-card__tags span {
  color: #965719;
  background: #fff1df;
}

.cases-voices__note {
  margin: 15px 0 0;
  color: #768994;
  font-size: 13px;
  line-height: 1.75;
  text-align: center;
}

.warning {
  position: relative;
  padding: 103px 20px 94px;
  overflow: hidden;
  background: #fffaf1;
}

.warning::before {
  content: "!";
  position: absolute;
  top: -65px;
  right: 3%;
  color: rgba(200, 75, 55, 0.035);
  font-family: Arial, sans-serif;
  font-size: 430px;
  font-weight: 900;
  line-height: 1;
}

.warning__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.warning-heading {
  display: flex;
  width: min(100%, 930px);
  margin: 0 auto 48px;
  align-items: center;
  justify-content: center;
  text-align: left;
}

.warning-heading__icon {
  display: grid;
  width: 105px;
  height: 105px;
  flex: 0 0 auto;
  margin-right: 28px;
  border-radius: 50%;
  color: #d35843;
  background: #fff0dd;
  place-items: center;
}

.warning-heading__icon svg {
  width: 62px;
  height: 58px;
  stroke-width: 2.4;
}

.warning-heading__en {
  display: inline-flex;
  color: #c94d38;
  align-items: center;
  gap: 9px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.22em;
}

.warning-heading__en::after {
  content: "";
  width: 35px;
  height: 1px;
  background: currentColor;
}

.warning-heading__label {
  margin: 5px 0 2px;
  color: #806f5d;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.07em;
}

.warning-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  line-height: 1.4;
}

.warning-heading h2 span {
  position: relative;
  color: #c84b37;
}

.warning-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #ffd1b8;
}

.warning-heading > div > p:last-child {
  margin: 12px 0 0;
  color: #716f6a;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.warning-intro {
  display: grid;
  min-height: 390px;
  overflow: hidden;
  border: 1px solid #ead9c7;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 17px 38px rgba(91, 59, 27, 0.09);
  grid-template-columns: 0.84fr 1.16fr;
}

.warning-intro__visual {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 75% 20%, rgba(255, 255, 255, 0.13), transparent 25%),
    linear-gradient(145deg, #3d4448, #202a30);
}

.warning-intro__visual::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.1;
  background-image: repeating-linear-gradient(135deg, transparent 0 13px, #fff 13px 14px);
}

.warning-truck {
  position: absolute;
  bottom: 56px;
  left: 42px;
  z-index: 1;
  color: #d1d9dd;
}

.warning-truck svg {
  width: 220px;
  stroke-width: 2.5;
}

.warning-truck span {
  position: absolute;
  top: 69px;
  left: 39px;
  color: #fff;
  font-size: 17px;
  font-weight: 900;
  transform: rotate(-3deg);
}

.warning-intro__bill {
  position: absolute;
  top: 38px;
  right: 30px;
  z-index: 2;
  width: 146px;
  min-height: 190px;
  padding: 19px 17px;
  color: #3f4a50;
  background: #fff;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.26);
  transform: rotate(8deg);
}

.warning-intro__bill::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 15px;
  background: linear-gradient(135deg, #fff 7px, transparent 0) 0 7px / 14px 14px repeat-x;
}

.warning-intro__bill > span {
  display: block;
  margin-bottom: 15px;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
}

.warning-intro__bill i {
  display: block;
  height: 5px;
  margin-bottom: 10px;
  border-radius: 4px;
  background: #dfe5e8;
}

.warning-intro__bill i:nth-of-type(2) {
  width: 80%;
}

.warning-intro__bill i:nth-of-type(3) {
  width: 60%;
}

.warning-intro__bill strong {
  display: block;
  margin-top: 18px;
  padding-top: 12px;
  border-top: 1px dashed #b9c4c9;
  color: #c84b37;
  font-size: 19px;
  text-align: center;
}

.warning-intro__alert {
  position: absolute;
  top: 44px;
  left: 39px;
  z-index: 3;
  display: grid;
  width: 66px;
  height: 66px;
  border: 5px solid #252e33;
  border-radius: 50%;
  color: #fff;
  background: #d0523d;
  box-shadow: 0 7px 20px rgba(0, 0, 0, 0.24);
  place-items: center;
  font-family: Arial, sans-serif;
  font-size: 39px;
  font-weight: 900;
}

.warning-intro__content {
  padding: 49px 48px 42px;
}

.warning-intro__content > span {
  color: #c84b37;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.warning-intro__content h3 {
  margin: 7px 0 17px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 27px;
  line-height: 1.5;
}

.warning-intro__content h3 strong {
  color: #c84b37;
  font-size: 31px;
}

.warning-intro__content p {
  margin: 0 0 10px;
  color: #6f777b;
  font-size: 16px;
  line-height: 1.9;
}

.warning-cases {
  display: grid;
  margin-top: 18px;
  grid-template-columns: repeat(3, 1fr);
  gap: 13px;
}

.warning-case {
  position: relative;
  min-height: 380px;
  padding: 28px 24px 24px;
  overflow: hidden;
  border: 1px solid #eadbca;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 11px 25px rgba(91, 59, 27, 0.06);
}

.warning-case::after {
  content: "!";
  position: absolute;
  right: -3px;
  bottom: -37px;
  color: rgba(200, 75, 55, 0.045);
  font-family: Arial, sans-serif;
  font-size: 150px;
  font-weight: 900;
  line-height: 1;
}

.warning-case__number {
  position: absolute;
  z-index: 1;
  top: 17px;
  right: 20px;
  color: #fff;
  font-family: Georgia, serif;
  font-size: 35px;
  font-style: italic;
  font-weight: 700;
  text-shadow: 0 2px 10px rgba(80, 40, 10, 0.6);
}

.warning-case__photo {
  margin: -28px -24px 16px;
}

.warning-case__photo img {
  display: block;
  width: 100%;
  height: 150px;
  object-fit: cover;
}

.warning-case__tag {
  color: #c84b37;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.warning-case h3 {
  margin: 6px 0 13px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 18px;
  line-height: 1.55;
}

.warning-case h3 strong {
  color: #c84b37;
  font-size: 20px;
}

.warning-case p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #6f797e;
  font-size: 15px;
  line-height: 1.85;
}

.safe-choice {
  display: grid;
  margin-top: 62px;
  overflow: hidden;
  border: 1px solid #cfe1ea;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 15px 35px rgba(17, 66, 95, 0.08);
  grid-template-columns: 0.77fr 1.23fr;
}

.safe-choice__heading {
  padding: 44px 35px;
  color: #fff;
  background:
    radial-gradient(circle at 80% 15%, rgba(255, 255, 255, 0.14), transparent 24%),
    linear-gradient(145deg, #07496e, #0071b0);
}

.safe-choice__heading > span {
  color: #94d1ee;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.safe-choice__heading h3 {
  margin: 8px 0 16px;
  font-family: "Yu Mincho", serif;
  font-size: 24px;
  line-height: 1.55;
}

.safe-choice__heading h3 strong {
  color: #ffbd66;
  font-size: 27px;
}

.safe-choice__heading p {
  margin: 0;
  color: #c6e0ec;
  font-size: 15px;
  line-height: 1.85;
}

.safe-choice__list {
  margin: 0;
  padding: 22px 28px;
  list-style: none;
}

.safe-choice__list li {
  position: relative;
  display: grid;
  min-height: 115px;
  padding: 17px 9px 17px 94px;
  border-bottom: 1px solid #dce7ec;
  align-items: center;
}

.safe-choice__list li:last-child {
  border-bottom: 0;
}

.safe-choice__number {
  position: absolute;
  top: 13px;
  left: 0;
  color: #98aeb9;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.safe-choice__number b {
  margin-left: 3px;
  color: var(--blue);
  font-family: Georgia, serif;
  font-size: 22px;
  font-style: italic;
}

.safe-choice__check {
  position: absolute;
  left: 34px;
  display: grid;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  place-items: center;
}

.safe-choice__check svg {
  width: 25px;
  stroke-width: 2.8;
}

.safe-choice__list h4 {
  margin: 0 0 5px;
  color: var(--ink);
  font-size: 17px;
}

.safe-choice__list h4 strong {
  color: var(--blue-deep);
  font-size: 19px;
}

.safe-choice__list p {
  margin: 0;
  color: #687f8b;
  font-size: 15px;
  line-height: 1.75;
}

.warning-promise {
  position: relative;
  display: grid;
  min-height: 175px;
  margin-top: 28px;
  padding: 28px 30px;
  overflow: hidden;
  border: 1px solid #cfe3ec;
  border-radius: 14px;
  background: #f1f9fd;
  grid-template-columns: 100px 1fr 270px;
  align-items: center;
  gap: 21px;
}

.warning-promise__shield {
  display: grid;
  width: 92px;
  height: 103px;
  color: var(--blue);
  place-items: center;
}

.warning-promise__shield svg {
  width: 83px;
  height: 95px;
  stroke-width: 2;
}

.warning-promise__shield path:last-child {
  color: var(--orange);
  stroke-width: 5;
}

.warning-promise__content > span {
  color: var(--blue);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.warning-promise__content h3 {
  margin: 6px 0 13px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 19px;
  line-height: 1.6;
}

.warning-promise__content h3 strong {
  color: var(--orange-deep);
  font-size: 22px;
}

.warning-promise__content ul {
  display: flex;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
  gap: 6px 14px;
  list-style: none;
}

.warning-promise__content li {
  display: flex;
  color: #4e6977;
  align-items: center;
  font-size: 12px;
  font-weight: 800;
}

.warning-promise__content li svg {
  width: 17px;
  height: 17px;
  margin-right: 5px;
  padding: 3px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  stroke-width: 2.8;
}

.warning-promise > a {
  position: relative;
  display: flex;
  min-height: 68px;
  border-radius: 8px;
  color: #fff;
  background: var(--green);
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 800;
}

.warning-promise > a b {
  display: grid;
  width: 39px;
  height: 33px;
  margin-right: 9px;
  border-radius: 11px;
  color: var(--green);
  background: #fff;
  place-items: center;
  font-family: Arial, sans-serif;
  font-size: 9px;
}

.warning-promise > a small {
  display: block;
  margin-bottom: 3px;
  font-size: 11px;
  font-weight: 600;
}

.warning-promise > a > svg {
  position: absolute;
  right: 10px;
  width: 14px;
}

.services {
  position: relative;
  padding: 105px 20px 94px;
  overflow: hidden;
  background: #fff;
}

.services::before,
.services::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.services::before {
  top: 140px;
  left: -175px;
  width: 410px;
  height: 410px;
  border: 72px solid rgba(0, 104, 183, 0.035);
}

.services::after {
  right: -120px;
  bottom: 160px;
  width: 300px;
  height: 300px;
  background: rgba(242, 138, 33, 0.04);
}

.services__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.services-heading {
  margin-bottom: 48px;
  text-align: center;
}

.services-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.services-heading__en::before,
.services-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.services-heading__label {
  margin: 0 0 5px;
  color: #607c8a;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.services-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.services-heading h2 span {
  position: relative;
  color: var(--blue);
}

.services-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #bee8fa;
}

.services-heading > p:last-child {
  margin: 15px 0 0;
  color: #687f8c;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.one-stop-flow {
  display: grid;
  min-height: 132px;
  overflow: hidden;
  border: 1px solid #cfe2eb;
  border-radius: 14px;
  background: #f4fafe;
  box-shadow: 0 13px 31px rgba(17, 66, 95, 0.07);
  grid-template-columns: 0.72fr 1.28fr;
}

.one-stop-flow__intro {
  display: flex;
  padding: 22px 29px;
  color: #fff;
  background:
    radial-gradient(circle at 80% 15%, rgba(255, 255, 255, 0.14), transparent 28%),
    linear-gradient(135deg, #07496f, #0072b3);
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
}

.one-stop-flow__intro > span {
  color: #95d2ef;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.one-stop-flow__intro p {
  margin: 7px 0 0;
}

.one-stop-flow__intro strong,
.one-stop-flow__intro small {
  display: block;
}

.one-stop-flow__intro strong {
  font-family: "Yu Mincho", serif;
  font-size: 23px;
}

.one-stop-flow__intro small {
  margin-top: 4px;
  color: #b9dcea;
  font-size: 12px;
}

.one-stop-flow ol {
  display: grid;
  margin: 0;
  padding: 20px 23px;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
  list-style: none;
}

.one-stop-flow li {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.one-stop-flow li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 41px;
  right: -3px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #a7c6d5;
  border-right: 2px solid #a7c6d5;
  transform: rotate(45deg);
}

.one-stop-flow li > span {
  position: absolute;
  top: 0;
  left: 7px;
  color: #d3e5ed;
  font-family: Georgia, serif;
  font-size: 17px;
  font-style: italic;
}

.one-stop-flow__icon {
  display: grid;
  width: 49px;
  height: 49px;
  margin-bottom: 6px;
  border-radius: 50%;
  color: var(--blue);
  background: #fff;
  place-items: center;
  box-shadow: 0 5px 13px rgba(17, 66, 95, 0.08);
}

.one-stop-flow__icon svg {
  width: 30px;
  height: 30px;
}

.one-stop-flow li > strong {
  color: var(--blue-ink);
  font-size: 12px;
}

.service-groups {
  display: grid;
  margin-top: 25px;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.service-group {
  overflow: hidden;
  border: 1px solid #d7e5eb;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 13px 31px rgba(17, 66, 95, 0.07);
}

.service-group__head {
  position: relative;
  display: flex;
  min-height: 145px;
  padding: 24px 23px;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(135deg, #07517e, #0076b8);
  align-items: center;
}

.service-group--remove .service-group__head {
  background: linear-gradient(135deg, #384d59, #116687);
}

.service-group--reuse .service-group__head {
  background: linear-gradient(135deg, #de7212, #f49b37);
}

.service-group__head::after {
  content: "";
  position: absolute;
  right: -43px;
  bottom: -58px;
  width: 150px;
  height: 150px;
  border: 24px solid rgba(255, 255, 255, 0.07);
  border-radius: 50%;
}

.service-group__number {
  position: relative;
  z-index: 1;
  margin-right: 16px;
  color: rgba(255, 255, 255, 0.22);
  font-family: Georgia, serif;
  font-size: 55px;
  font-style: italic;
  font-weight: 700;
}

.service-group__head > div {
  position: relative;
  z-index: 1;
}

.service-group__en {
  color: #9bd7f2;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.service-group--reuse .service-group__en {
  color: #fff2d9;
}

.service-group__head h3 {
  margin: 5px 0 0;
  font-family: "Yu Mincho", serif;
  font-size: 18px;
  line-height: 1.5;
}

.service-group__head h3 strong {
  color: #ffbd66;
  font-size: 21px;
}

.service-group--reuse .service-group__head h3 strong {
  color: #fff;
}

.service-group__photo {
  border-bottom: 1px solid #e3edf2;
}

.service-group__photo img {
  display: block;
  width: 100%;
  height: 168px;
  object-fit: cover;
}

.service-group__list {
  padding: 8px 20px 13px;
}

.service-item {
  display: grid;
  min-height: 255px;
  padding: 22px 0 20px;
  border-bottom: 1px solid #dce7ec;
  grid-template-columns: 58px 1fr;
  align-items: flex-start;
  gap: 13px;
}

.service-item:last-child {
  border-bottom: 0;
}

.service-item__icon {
  display: grid;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.service-group--remove .service-item__icon {
  color: #316b86;
  background: #e9f2f6;
}

.service-group--reuse .service-item__icon {
  color: var(--orange-deep);
  background: #fff1df;
}

.service-item__icon svg {
  width: 35px;
  height: 35px;
}

.service-item > div:last-child > span {
  color: #a5b6be;
  font-family: Georgia, serif;
  font-size: 10px;
  font-style: italic;
}

.service-item h4 {
  margin: 1px 0 9px;
  color: var(--blue-deep);
  font-family: "Yu Mincho", serif;
  font-size: 20px;
}

.service-group--remove .service-item h4 {
  color: #285b73;
}

.service-group--reuse .service-item h4 {
  color: var(--orange-deep);
}

.service-item p {
  margin: 0;
  color: #697f8a;
  font-size: 15px;
  line-height: 1.85;
}

.service-item ul {
  display: flex;
  margin: 13px 0 0;
  padding: 0;
  flex-wrap: wrap;
  gap: 5px;
  list-style: none;
}

.service-item li {
  padding: 4px 7px;
  border-radius: 3px;
  color: var(--blue-deep);
  background: var(--blue-pale);
  font-size: 10px;
  font-weight: 800;
}

.service-group--remove .service-item li {
  color: #285b73;
  background: #e9f2f6;
}

.service-group--reuse .service-item li {
  color: #965719;
  background: #fff1df;
}

.items {
  position: relative;
  padding: 105px 20px 94px;
  overflow: hidden;
  background:
    linear-gradient(rgba(243, 249, 252, 0.96), rgba(243, 249, 252, 0.96)),
    radial-gradient(circle at 1px 1px, #79afca 1px, transparent 1px);
  background-size: auto, 24px 24px;
}

.items::before {
  content: "ITEMS";
  position: absolute;
  top: 220px;
  left: -40px;
  color: rgba(0, 104, 183, 0.025);
  font-family: Arial, sans-serif;
  font-size: 235px;
  font-weight: 900;
  line-height: 1;
  writing-mode: vertical-rl;
}

.items__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.items-heading {
  margin-bottom: 45px;
  text-align: center;
}

.items-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.items-heading__en::before,
.items-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.items-heading__label {
  margin: 0 0 5px;
  color: #607c8a;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.items-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.items-heading h2 span {
  position: relative;
  color: var(--blue);
}

.items-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #bee8fa;
}

.items-heading > p:last-child {
  margin: 15px 0 0;
  color: #687f8c;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.items-summary {
  display: grid;
  min-height: 115px;
  padding: 20px 29px;
  border-radius: 13px;
  color: #fff;
  background:
    radial-gradient(circle at 85% 15%, rgba(255, 255, 255, 0.14), transparent 24%),
    linear-gradient(115deg, #07486f, #0074b7);
  box-shadow: 0 14px 33px rgba(0, 75, 126, 0.15);
  grid-template-columns: 110px 1fr 1.15fr;
  align-items: center;
  gap: 22px;
}

.items-summary__number {
  display: flex;
  align-items: center;
  justify-content: center;
}

.items-summary__number strong {
  color: #ffbd66;
  font-family: Georgia, serif;
  font-size: 67px;
  font-style: italic;
  line-height: 1;
}

.items-summary__number span {
  margin-left: 7px;
  color: #d1e9f3;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}

.items-summary__copy {
  padding-left: 24px;
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.items-summary__copy > span {
  color: #acd8eb;
  font-size: 12px;
  font-weight: 700;
}

.items-summary__copy p {
  margin: 4px 0 0;
  font-family: "Yu Mincho", serif;
  font-size: 17px;
}

.items-summary__copy strong {
  color: #ffbd66;
  font-size: 20px;
}

.items-summary ul {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  list-style: none;
}

.items-summary li {
  display: flex;
  color: #e2f1f7;
  align-items: center;
  font-size: 13px;
  font-weight: 800;
}

.items-summary li svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  margin-right: 6px;
  padding: 3px;
  border-radius: 50%;
  color: var(--blue-deep);
  background: #fff;
  stroke-width: 2.8;
}

.items-swipe-hint {
  display: none;
}

.item-category-grid {
  display: grid;
  margin-top: 24px;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.item-category {
  position: relative;
  min-height: 475px;
  padding: 28px 27px 25px;
  overflow: hidden;
  border: 1px solid #d7e5eb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 29px rgba(17, 66, 95, 0.07);
}

.item-category::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: var(--blue);
}

.item-category--daily::before,
.item-category--outdoor::before,
.item-category--special::before {
  background: var(--orange);
}

.item-category::after {
  content: "";
  position: absolute;
  right: -43px;
  bottom: -43px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: #edf8fd;
}

.item-category--daily::after,
.item-category--outdoor::after,
.item-category--special::after {
  background: #fff2e1;
}

.item-category__head {
  display: flex;
  align-items: center;
}

.item-category__number {
  position: absolute;
  top: 16px;
  right: 20px;
  color: #e1edf2;
  font-family: Georgia, serif;
  font-size: 35px;
  font-style: italic;
  font-weight: 700;
}

.item-category__icon {
  display: grid;
  width: 68px;
  height: 68px;
  flex: 0 0 auto;
  margin-right: 15px;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.item-category--daily .item-category__icon,
.item-category--outdoor .item-category__icon,
.item-category--special .item-category__icon {
  color: var(--orange-deep);
  background: #fff1df;
}

.item-category__icon svg {
  width: 42px;
  height: 42px;
}

.item-category__head > div:last-child > span {
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.item-category--daily .item-category__head > div:last-child > span,
.item-category--outdoor .item-category__head > div:last-child > span,
.item-category--special .item-category__head > div:last-child > span {
  color: var(--orange-deep);
}

.item-category h3 {
  margin: 3px 0 0;
  color: var(--blue-deep);
  font-family: "Yu Mincho", serif;
  font-size: 22px;
}

.item-category--daily h3,
.item-category--outdoor h3,
.item-category--special h3 {
  color: var(--orange-deep);
}

.item-category > p {
  margin: 18px 0 17px;
  color: #687f8b;
  font-size: 15px;
  line-height: 1.8;
}

.item-category > ul {
  position: relative;
  z-index: 1;
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  list-style: none;
}

.item-category > ul li {
  position: relative;
  padding: 8px 8px 8px 25px;
  border: 1px solid #dce8ed;
  border-radius: 5px;
  color: #4d6876;
  background: #f8fbfc;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

.item-category > ul li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--blue);
  transform: translateY(-50%);
}

.item-category--daily > ul li::before,
.item-category--outdoor > ul li::before,
.item-category--special > ul li::before {
  background: var(--orange);
}

.item-category__note {
  position: relative;
  z-index: 1;
  display: inline-flex;
  margin-top: 17px;
  padding: 6px 10px;
  border-radius: 5px;
  color: var(--blue-deep);
  background: var(--blue-pale);
  align-items: center;
  font-size: 12px;
  font-weight: 800;
}

.item-category__note svg {
  width: 17px;
  height: 17px;
  margin-right: 5px;
  padding: 3px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  stroke-width: 2.8;
}

.item-category--daily .item-category__note,
.item-category--outdoor .item-category__note {
  color: #965719;
  background: #fff1df;
}

.item-category--daily .item-category__note svg,
.item-category--outdoor .item-category__note svg {
  background: var(--orange);
}

.item-category__note--consult {
  color: #9a5717;
  background: #fff1df;
}

.item-category__note--consult svg {
  background: var(--orange);
}

.purchase-highlight {
  display: grid;
  min-height: 190px;
  margin-top: 31px;
  padding: 29px 32px;
  overflow: hidden;
  border-radius: 15px;
  color: #fff;
  background:
    radial-gradient(circle at 85% 15%, rgba(255, 255, 255, 0.15), transparent 24%),
    linear-gradient(115deg, #d96d0b, #f39a35);
  box-shadow: 0 15px 33px rgba(196, 98, 11, 0.18);
  grid-template-columns: 105px 1fr 330px;
  align-items: center;
  gap: 24px;
}

.purchase-highlight__mark {
  display: grid;
  width: 100px;
  height: 112px;
  border: 2px solid rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  place-items: center;
  text-align: center;
  transform: rotate(-5deg);
}

.purchase-highlight__mark span {
  margin-bottom: -25px;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.purchase-highlight__mark strong {
  font-family: "Yu Mincho", serif;
  font-size: 20px;
  line-height: 1.35;
}

.purchase-highlight__content > span {
  color: #fff0db;
  font-size: 12px;
  font-weight: 800;
}

.purchase-highlight__content h3 {
  margin: 5px 0 9px;
  font-family: "Yu Mincho", serif;
  font-size: 21px;
  line-height: 1.5;
}

.purchase-highlight__content h3 strong {
  color: #fff;
  font-size: 24px;
}

.purchase-highlight__content p {
  margin: 0;
  color: #fff6e9;
  font-size: 14px;
  line-height: 1.75;
}

.purchase-highlight__formula {
  display: flex;
  padding: 18px 14px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 9px;
  background: rgba(157, 64, 0, 0.19);
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  text-align: center;
}

.purchase-highlight__formula span {
  font-size: 12px;
  font-weight: 700;
}

.purchase-highlight__formula b {
  color: #ffe0b2;
  font-size: 19px;
  font-weight: 400;
}

.purchase-highlight__formula strong {
  width: 100%;
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px dashed rgba(255, 255, 255, 0.38);
  font-size: 18px;
}

.items-consult {
  display: grid;
  min-height: 145px;
  margin-top: 20px;
  padding: 24px 27px;
  border: 1px solid #cfe3ec;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 11px 27px rgba(17, 66, 95, 0.06);
  grid-template-columns: 68px 1fr 285px;
  align-items: center;
  gap: 18px;
}

.items-consult__icon {
  display: grid;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.items-consult__icon svg {
  width: 38px;
  height: 38px;
}

.items-consult__copy > span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
}

.items-consult__copy p {
  margin: 5px 0 4px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 17px;
}

.items-consult__copy strong {
  color: var(--orange-deep);
  font-size: 20px;
}

.items-consult__copy small {
  display: block;
  color: #788d97;
  font-size: 11px;
  line-height: 1.6;
}

.items-consult > a {
  position: relative;
  display: flex;
  min-height: 68px;
  border-radius: 8px;
  color: #fff;
  background: var(--green);
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 800;
}

.items-consult > a b {
  display: grid;
  width: 38px;
  height: 32px;
  margin-right: 8px;
  border-radius: 10px;
  color: var(--green);
  background: #fff;
  place-items: center;
  font-family: Arial, sans-serif;
  font-size: 9px;
}

.items-consult > a small {
  display: block;
  margin-bottom: 3px;
  font-size: 10px;
  font-weight: 600;
}

.items-consult > a > svg {
  position: absolute;
  right: 9px;
  width: 14px;
}

.use-flow {
  position: relative;
  padding: 105px 20px 96px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(238, 248, 253, 0.78) 0, rgba(255, 255, 255, 0.96) 35%, #fff 68%),
    repeating-linear-gradient(90deg, transparent 0, transparent 79px, rgba(0, 104, 183, 0.05) 80px);
}

.use-flow::before {
  content: "FLOW";
  position: absolute;
  top: 175px;
  right: -32px;
  color: rgba(0, 104, 183, 0.035);
  font-family: Arial, sans-serif;
  font-size: 238px;
  font-weight: 900;
  line-height: 1;
  writing-mode: vertical-rl;
}

.use-flow::after {
  content: "";
  position: absolute;
  bottom: -210px;
  left: -165px;
  width: 450px;
  height: 450px;
  border: 78px solid rgba(242, 138, 33, 0.035);
  border-radius: 50%;
}

.use-flow__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.use-flow-heading {
  margin-bottom: 45px;
  text-align: center;
}

.use-flow-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.use-flow-heading__en::before,
.use-flow-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.use-flow-heading__label {
  margin: 0 0 5px;
  color: #607c8a;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.use-flow-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.use-flow-heading h2 span {
  position: relative;
  color: var(--blue);
}

.use-flow-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #bee8fa;
}

.use-flow-heading > p:last-child {
  margin: 15px 0 0;
  color: #687f8c;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.flow-intro {
  display: grid;
  min-height: 132px;
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 35px rgba(17, 66, 95, 0.11);
  grid-template-columns: 330px 1fr;
}

.flow-intro__lead {
  position: relative;
  display: flex;
  padding: 24px 28px;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 92% 15%, rgba(255, 255, 255, 0.15), transparent 29%),
    linear-gradient(120deg, #06476e, #0070ad);
  flex-direction: column;
  justify-content: center;
}

.flow-intro__lead::after {
  content: "05";
  position: absolute;
  right: -7px;
  bottom: -32px;
  color: rgba(255, 255, 255, 0.07);
  font-family: Georgia, serif;
  font-size: 116px;
  font-style: italic;
  line-height: 1;
}

.flow-intro__lead > span {
  color: #8ddcff;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.17em;
}

.flow-intro__lead p {
  margin: 5px 0 0;
  color: #d9eef7;
  font-size: 14px;
  font-weight: 700;
}

.flow-intro__lead strong {
  position: relative;
  z-index: 1;
  margin-top: 1px;
  font-family: "Yu Mincho", serif;
  font-size: 24px;
  letter-spacing: 0.04em;
}

.flow-intro__lead em {
  margin: 0 4px;
  color: #ffbd66;
  font-family: Georgia, serif;
  font-size: 43px;
  font-style: italic;
  line-height: 1;
}

.flow-intro > ul {
  display: grid;
  margin: 0;
  padding: 20px 27px;
  grid-template-columns: repeat(3, 1fr);
  align-items: center;
  list-style: none;
}

.flow-intro > ul li {
  display: flex;
  min-height: 72px;
  padding: 0 20px;
  align-items: center;
}

.flow-intro > ul li + li {
  border-left: 1px solid #dbe8ed;
}

.flow-intro > ul svg {
  width: 31px;
  height: 31px;
  flex: 0 0 auto;
  margin-right: 10px;
  padding: 7px;
  border-radius: 50%;
  color: #fff;
  background: var(--orange);
  stroke-width: 2.8;
}

.flow-intro > ul span {
  display: block;
}

.flow-intro > ul small {
  display: block;
  color: #6e8692;
  font-size: 11px;
  font-weight: 700;
}

.flow-intro > ul strong {
  display: block;
  margin-top: 2px;
  color: var(--blue-deep);
  font-family: "Yu Mincho", serif;
  font-size: 17px;
}

.flow-steps {
  display: grid;
  margin: 40px 0 0;
  padding: 0;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, auto);
  gap: 44px 36px;
  list-style: none;
}

.flow-step {
  position: relative;
  min-height: 365px;
  padding: 27px 25px 24px;
  border: 1px solid #d6e5ec;
  border-top: 4px solid var(--blue);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 12px 29px rgba(17, 66, 95, 0.07);
}

.flow-step:nth-child(1) { grid-column: 1; grid-row: 1; }
.flow-step:nth-child(2) { grid-column: 2; grid-row: 1; }
.flow-step:nth-child(3) { grid-column: 3; grid-row: 1; }
.flow-step:nth-child(4) { grid-column: 3; grid-row: 2; }
.flow-step:nth-child(5) { grid-column: 2; grid-row: 2; }

.flow-step::after {
  content: "\2192";
  position: absolute;
  top: calc(50% - 18px);
  right: -37px;
  z-index: 3;
  display: grid;
  width: 36px;
  height: 36px;
  border: 1px solid #cce1eb;
  border-radius: 50%;
  color: var(--blue);
  background: #fff;
  box-shadow: 0 5px 14px rgba(17, 66, 95, 0.12);
  place-items: center;
  font-family: Arial, sans-serif;
  font-size: 20px;
  font-weight: 900;
}

.flow-step:nth-child(3)::after {
  content: "\2193";
  top: auto;
  right: calc(50% - 18px);
  bottom: -42px;
}

.flow-step:nth-child(4)::after,
.flow-step:nth-child(5)::after {
  content: "\2190";
  right: auto;
  left: -37px;
}

.flow-step:nth-child(5)::after {
  display: none;
}

.flow-step:nth-child(4),
.flow-step:nth-child(5) {
  border-top-color: var(--orange);
}

.flow-step__number {
  position: absolute;
  top: 19px;
  right: 20px;
  color: #dcebf2;
  font-family: Georgia, serif;
  font-size: 39px;
  font-style: italic;
  font-weight: 700;
  line-height: 1;
}

.flow-step__number small {
  margin-right: 4px;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-style: normal;
  letter-spacing: 0.1em;
}

.flow-step__icon {
  display: grid;
  width: 72px;
  height: 72px;
  margin-bottom: 18px;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.flow-step:nth-child(4) .flow-step__icon,
.flow-step:nth-child(5) .flow-step__icon {
  color: var(--orange-deep);
  background: #fff1df;
}

.flow-step__icon svg {
  width: 44px;
  height: 44px;
}

.flow-step__en {
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.flow-step:nth-child(4) .flow-step__en,
.flow-step:nth-child(5) .flow-step__en {
  color: var(--orange-deep);
}

.flow-step h3 {
  margin: 4px 0 12px;
  color: var(--blue-deep);
  font-family: "Yu Mincho", serif;
  font-size: 22px;
  line-height: 1.45;
}

.flow-step:nth-child(4) h3,
.flow-step:nth-child(5) h3 {
  color: #a85812;
}

.flow-step > p {
  margin: 0;
  color: #627b88;
  font-size: 15px;
  line-height: 1.85;
}

.flow-step__point {
  position: absolute;
  right: 25px;
  bottom: 24px;
  left: 25px;
  display: flex;
  min-height: 38px;
  padding: 6px 11px;
  border-radius: 5px;
  color: var(--blue-deep);
  background: var(--blue-pale);
  align-items: center;
  justify-content: center;
  font-size: 13px;
  text-align: center;
}

.flow-step__point::before {
  content: "\2713";
  display: grid;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  margin-right: 6px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  place-items: center;
  font-size: 11px;
}

.flow-step:nth-child(4) .flow-step__point,
.flow-step:nth-child(5) .flow-step__point {
  color: #965719;
  background: #fff1df;
}

.flow-step:nth-child(4) .flow-step__point::before,
.flow-step:nth-child(5) .flow-step__point::before {
  background: var(--orange);
}

.flow-step--complete {
  border-color: transparent;
  color: #fff;
  background:
    radial-gradient(circle at 88% 12%, rgba(255, 255, 255, 0.16), transparent 25%),
    linear-gradient(145deg, #d96b0b, #ef912c);
  box-shadow: 0 16px 34px rgba(191, 89, 0, 0.2);
}

.flow-step--complete .flow-step__number {
  color: rgba(255, 255, 255, 0.2);
}

.flow-step--complete .flow-step__icon {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
}

.flow-step--complete .flow-step__en {
  color: #ffebce;
}

.flow-step--complete h3 {
  color: #fff;
}

.flow-step--complete > p {
  color: #fff5e8;
}

.flow-step--complete .flow-step__point {
  color: #fff;
  background: rgba(255, 255, 255, 0.13);
}

.flow-step--complete .flow-step__point::before {
  color: var(--orange-deep);
  background: #fff;
}

.flow-assurance {
  display: grid;
  min-height: 205px;
  margin-top: 38px;
  overflow: hidden;
  border: 1px solid #d3e5ed;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 13px 31px rgba(17, 66, 95, 0.08);
  grid-template-columns: 1.05fr 1fr;
}

.flow-assurance__head {
  padding: 32px 35px;
}

.flow-assurance__head > span {
  display: inline-block;
  padding: 5px 11px;
  border-radius: 4px;
  color: #fff;
  background: var(--orange);
  font-size: 11px;
  font-weight: 800;
}

.flow-assurance__head h3 {
  margin: 10px 0 10px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 22px;
  line-height: 1.55;
}

.flow-assurance__head h3 strong {
  color: var(--blue);
  font-size: 26px;
}

.flow-assurance__head p {
  margin: 0;
  color: #667e8b;
  font-size: 15px;
  line-height: 1.8;
}

.flow-assurance__route {
  display: flex;
  padding: 25px;
  color: #fff;
  background:
    radial-gradient(circle at 80% 15%, rgba(255, 255, 255, 0.13), transparent 25%),
    linear-gradient(125deg, #06496f, #087ab6);
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.flow-assurance__route > span {
  display: flex;
  width: 118px;
  align-items: center;
  flex-direction: column;
  text-align: center;
}

.flow-assurance__route svg {
  width: 55px;
  height: 55px;
  margin-bottom: 9px;
  padding: 10px;
  border-radius: 50%;
  color: #fff;
  background: rgba(255, 255, 255, 0.13);
}

.flow-assurance__route b {
  font-size: 13px;
}

.flow-assurance__route i {
  margin-top: -24px;
  color: #8ddcff;
  font-family: Arial, sans-serif;
  font-size: 20px;
  font-style: normal;
}

.faq {
  position: relative;
  padding: 105px 20px 96px;
  overflow: hidden;
  background:
    linear-gradient(rgba(242, 248, 251, 0.96), rgba(242, 248, 251, 0.96)),
    radial-gradient(circle at 1px 1px, rgba(0, 104, 183, 0.34) 1px, transparent 1px);
  background-size: auto, 23px 23px;
}

.faq::before {
  content: "Q&A";
  position: absolute;
  top: 220px;
  left: -60px;
  color: rgba(0, 104, 183, 0.03);
  font-family: Georgia, serif;
  font-size: 225px;
  font-style: italic;
  font-weight: 900;
  line-height: 1;
  writing-mode: vertical-rl;
}

.faq__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.faq-heading {
  margin-bottom: 45px;
  text-align: center;
}

.faq-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.faq-heading__en::before,
.faq-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.faq-heading__label {
  margin: 0 0 5px;
  color: #607c8a;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.faq-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.faq-heading h2 span {
  position: relative;
  color: var(--blue);
}

.faq-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #bee8fa;
}

.faq-heading > p:last-child {
  margin: 15px 0 0;
  color: #687f8c;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.faq-index {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.faq-index > a {
  position: relative;
  display: grid;
  min-height: 106px;
  padding: 19px 54px 19px 20px;
  overflow: hidden;
  border: 1px solid #d3e4eb;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 9px 24px rgba(17, 66, 95, 0.06);
  grid-template-columns: 58px 1fr;
  align-items: center;
  gap: 13px;
  transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.faq-index > a::after {
  content: "\2193";
  position: absolute;
  right: 16px;
  display: grid;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  place-items: center;
  font-family: Arial, sans-serif;
  font-size: 15px;
  font-weight: 900;
}

.faq-index > a:nth-child(2)::after {
  background: var(--orange);
}

.faq-index > a:hover,
.faq-index > a:focus-visible {
  border-color: #8fc6df;
  box-shadow: 0 13px 29px rgba(17, 66, 95, 0.11);
  transform: translateY(-2px);
}

.faq-index__icon {
  display: grid;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.faq-index > a:nth-child(2) .faq-index__icon {
  color: var(--orange-deep);
  background: #fff1df;
}

.faq-index__icon svg {
  width: 36px;
  height: 36px;
}

.faq-index > a > span:nth-child(2) small {
  display: block;
  color: #8ca0aa;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.13em;
}

.faq-index > a > span:nth-child(2) strong {
  display: block;
  margin-top: 4px;
  color: var(--blue-deep);
  font-family: "Yu Mincho", serif;
  font-size: 18px;
}

.faq-index > a:nth-child(2) > span:nth-child(2) strong {
  color: #a85a16;
}

.faq-index > a > em {
  position: absolute;
  top: 10px;
  right: 11px;
  color: #9ab0ba;
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
}

.faq-groups {
  margin-top: 27px;
}

.faq-group {
  display: grid;
  padding: 15px;
  border: 1px solid #d4e5ec;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 13px 31px rgba(17, 66, 95, 0.07);
  grid-template-columns: 245px 1fr;
  gap: 15px;
  scroll-margin-top: 105px;
}

.faq-group + .faq-group {
  margin-top: 18px;
}

.faq-group__heading {
  position: relative;
  display: flex;
  min-height: 100%;
  padding: 31px 24px;
  overflow: hidden;
  border-radius: 10px;
  color: #fff;
  background:
    radial-gradient(circle at 82% 12%, rgba(255, 255, 255, 0.15), transparent 25%),
    linear-gradient(145deg, #06496f, #0071ad);
  flex-direction: column;
  justify-content: center;
}

.faq-group--orange .faq-group__heading {
  background:
    radial-gradient(circle at 82% 12%, rgba(255, 255, 255, 0.17), transparent 25%),
    linear-gradient(145deg, #d96c0c, #f09530);
}

.faq-group__number {
  position: absolute;
  top: 14px;
  right: 14px;
  color: rgba(255, 255, 255, 0.15);
  font-family: Georgia, serif;
  font-size: 55px;
  font-style: italic;
  font-weight: 700;
  line-height: 1;
}

.faq-group__icon {
  display: grid;
  width: 67px;
  height: 67px;
  margin-bottom: 17px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  place-items: center;
}

.faq-group__icon svg {
  width: 41px;
  height: 41px;
}

.faq-group__heading > span:not(.faq-group__number) {
  color: #99ddf9;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.13em;
}

.faq-group--orange .faq-group__heading > span:not(.faq-group__number) {
  color: #fff0dc;
}

.faq-group__heading h3 {
  margin: 5px 0 7px;
  font-family: "Yu Mincho", serif;
  font-size: 22px;
  line-height: 1.5;
}

.faq-group__heading p {
  margin: 0;
  color: #d4eaf4;
  font-size: 12px;
  font-weight: 700;
}

.faq-group--orange .faq-group__heading p {
  color: #fff2e1;
}

.faq-group__items {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.faq-item {
  overflow: hidden;
  border: 1px solid #dce8ed;
  border-radius: 8px;
  background: #fbfdfe;
}

.faq-item[open] {
  border-color: #b9d8e7;
  background: #fff;
  box-shadow: 0 7px 18px rgba(17, 66, 95, 0.06);
}

.faq-item summary {
  position: relative;
  display: grid;
  min-height: 74px;
  padding: 13px 58px 13px 16px;
  cursor: pointer;
  grid-template-columns: 38px 1fr;
  align-items: center;
  gap: 12px;
  list-style: none;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary:focus-visible {
  outline: 3px solid rgba(0, 104, 183, 0.25);
  outline-offset: -3px;
}

.faq-item__q {
  display: grid;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  place-items: center;
  font-family: Georgia, serif;
  font-size: 20px;
  font-style: italic;
  font-weight: 700;
}

.faq-group--orange .faq-item__q {
  background: var(--orange);
}

.faq-item__question {
  color: var(--ink);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.6;
}

.faq-item__toggle {
  position: absolute;
  top: calc(50% - 16px);
  right: 16px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--blue-pale);
}

.faq-group--orange .faq-item__toggle {
  background: #fff1df;
}

.faq-item__toggle::before,
.faq-item__toggle::after {
  content: "";
  position: absolute;
  top: 15px;
  left: 9px;
  width: 14px;
  height: 2px;
  border-radius: 2px;
  background: var(--blue);
  transition: transform 0.2s ease;
}

.faq-group--orange .faq-item__toggle::before,
.faq-group--orange .faq-item__toggle::after {
  background: var(--orange-deep);
}

.faq-item__toggle::after {
  transform: rotate(90deg);
}

.faq-item[open] .faq-item__toggle::after {
  transform: rotate(0);
}

.faq-item__answer {
  display: grid;
  margin: 0 16px;
  padding: 17px 10px 19px;
  border-top: 1px dashed #cbdde5;
  grid-template-columns: 38px 1fr;
  gap: 12px;
}

.faq-item__answer > span {
  display: grid;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: #fff;
  background: var(--orange);
  place-items: center;
  font-family: Georgia, serif;
  font-size: 20px;
  font-style: italic;
  font-weight: 700;
}

.faq-group--orange .faq-item__answer > span {
  background: var(--blue);
}

.faq-item__answer p {
  margin: 3px 0 0;
  color: #5e7784;
  font-size: 15px;
  line-height: 1.85;
}

.faq-item__answer strong {
  color: var(--blue-deep);
}

.faq-group--orange .faq-item__answer strong {
  color: #a95a15;
}

.company-area {
  position: relative;
  padding: 105px 20px 96px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.97), rgba(239, 248, 253, 0.94)),
    repeating-linear-gradient(90deg, transparent 0, transparent 79px, rgba(0, 104, 183, 0.06) 80px);
}

.company-area::before {
  content: "COMPANY";
  position: absolute;
  top: 205px;
  right: -52px;
  color: rgba(0, 104, 183, 0.032);
  font-family: Arial, sans-serif;
  font-size: 185px;
  font-weight: 900;
  line-height: 1;
  writing-mode: vertical-rl;
}

.company-area__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.company-heading {
  margin-bottom: 45px;
  text-align: center;
}

.company-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.company-heading__en::before,
.company-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.company-heading__label {
  margin: 0 0 5px;
  color: #607c8a;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.company-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.company-heading h2 span {
  position: relative;
  color: var(--blue);
}

.company-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #bee8fa;
}

.company-heading > p:last-child {
  margin: 15px 0 0;
  color: #687f8c;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.company-profile {
  display: grid;
  overflow: hidden;
  border: 1px solid #d5e5ec;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 16px 37px rgba(17, 66, 95, 0.1);
  grid-template-columns: 1.08fr 0.92fr;
}

.company-profile__details {
  padding: 31px 33px 32px;
}

.company-profile__title {
  margin-bottom: 21px;
}

.company-profile__title > span {
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.company-profile__title h3 {
  margin: 4px 0 5px;
  color: var(--ink);
  font-family: "Yu Mincho", serif;
  font-size: 25px;
}

.company-profile__title p {
  margin: 0;
  color: #6a818d;
  font-size: 14px;
}

.company-profile dl {
  margin: 0;
  border-top: 1px solid #dce8ed;
}

.company-profile dl > div {
  display: grid;
  min-height: 53px;
  padding: 11px 5px;
  border-bottom: 1px solid #dce8ed;
  grid-template-columns: 125px 1fr;
  align-items: center;
  gap: 13px;
}

.company-profile dt {
  color: var(--blue-deep);
  font-size: 13px;
  font-weight: 800;
}

.company-profile dd {
  margin: 0;
  color: #536f7c;
  font-size: 14px;
  line-height: 1.7;
}

.company-profile dd strong {
  color: var(--ink);
  font-size: 17px;
}

.company-profile dd a {
  color: var(--blue);
  font-family: Arial, sans-serif;
  font-size: 17px;
  font-weight: 800;
}

.company-map {
  display: flex;
  min-width: 0;
  padding: 22px;
  background: #eef7fb;
  flex-direction: column;
}

.company-map__head {
  display: flex;
  min-height: 68px;
  margin-bottom: 13px;
  padding: 10px 14px;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(125deg, #064c73, #0072ae);
  align-items: center;
}

.company-map__pin {
  display: grid;
  width: 47px;
  height: 47px;
  flex: 0 0 auto;
  margin-right: 11px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  place-items: center;
}

.company-map__pin svg {
  width: 28px;
  height: 34px;
}

.company-map__head p {
  margin: 0;
}

.company-map__head p span {
  display: block;
  color: #92ddf9;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.13em;
}

.company-map__head p strong {
  display: block;
  margin-top: 2px;
  font-family: "Yu Mincho", serif;
  font-size: 17px;
}

.company-map iframe {
  width: 100%;
  min-height: 455px;
  flex: 1;
  border: 0;
  border-radius: 9px;
  background: #d8e9f0;
}

.company-map > a {
  display: flex;
  min-height: 50px;
  margin-top: 10px;
  border-radius: 7px;
  color: #fff;
  background: var(--blue);
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
}

.company-map > a svg {
  width: 15px;
  margin-left: 8px;
}

.company-permits {
  display: grid;
  margin-top: 22px;
  overflow: hidden;
  border: 1px solid #d4e5ec;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(17, 66, 95, 0.07);
  grid-template-columns: 1.1fr repeat(3, 1fr);
}

.company-permits__heading {
  display: flex;
  min-height: 155px;
  padding: 22px 24px;
  color: #fff;
  background: linear-gradient(135deg, #06476d, #006ca6);
  align-items: center;
}

.company-permits__shield {
  display: grid;
  width: 61px;
  height: 67px;
  flex: 0 0 auto;
  margin-right: 13px;
  place-items: center;
}

.company-permits__shield svg {
  width: 57px;
  height: 65px;
  color: #a8e2fa;
}

.company-permits__heading p {
  margin: 0;
}

.company-permits__heading p > span {
  display: block;
  color: #8edcff;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.company-permits__heading p > strong {
  display: block;
  margin-top: 4px;
  font-family: "Yu Mincho", serif;
  font-size: 20px;
}

.company-permits__heading p > small {
  display: block;
  margin-top: 4px;
  color: #c8e2ed;
  font-size: 10px;
}

.company-permit-card {
  display: grid;
  min-width: 0;
  padding: 19px 14px;
  border-left: 1px solid #dce8ed;
  grid-template-columns: 48px 1fr;
  align-items: center;
  gap: 9px;
}

.company-permit-card__icon {
  display: grid;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  color: var(--blue);
  background: var(--blue-pale);
  place-items: center;
}

.company-permit-card--process .company-permit-card__icon {
  color: var(--orange-deep);
  background: #fff1df;
}

.company-permit-card__icon svg {
  width: 31px;
  height: 31px;
}

.company-permit-card p,
.company-permit-card small,
.company-permit-card strong,
.company-permit-card p > span {
  display: block;
}

.company-permit-card p {
  margin: 0;
}

.company-permit-card small {
  color: #718793;
  font-size: 9px;
}

.company-permit-card strong {
  margin-top: 3px;
  color: var(--blue-deep);
  font-size: 13px;
  line-height: 1.45;
}

.company-permit-card--process strong {
  color: #a95a15;
}

.company-permit-card p > span {
  margin-top: 4px;
  color: #8b9da6;
  font-size: 9px;
}

.contact-form-section {
  position: relative;
  padding: 108px 20px 125px;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 12%, rgba(0, 104, 183, 0.09), transparent 24%),
    radial-gradient(circle at 92% 82%, rgba(242, 138, 33, 0.1), transparent 25%),
    linear-gradient(145deg, #edf7fc, #f8fbfd 48%, #fff8ef);
  scroll-margin-top: 20px;
}

.contact-form-section::before {
  content: "CONTACT";
  position: absolute;
  top: 185px;
  left: -24px;
  color: rgba(0, 104, 183, 0.035);
  font-family: Arial, sans-serif;
  font-size: 160px;
  font-weight: 900;
  line-height: 1;
  transform: rotate(90deg) translateY(100%);
  transform-origin: left top;
  pointer-events: none;
}

.contact-form-section__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.contact-form-heading {
  margin-bottom: 46px;
  text-align: center;
}

.contact-form-heading__en {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--blue);
  align-items: center;
  gap: 10px;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.contact-form-heading__en::before,
.contact-form-heading__en::after {
  content: "";
  width: 30px;
  height: 1px;
  background: currentColor;
}

.contact-form-heading__label {
  margin: 0 0 5px;
  color: #607c8a;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.contact-form-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: clamp(34px, 3.8vw, 49px);
  letter-spacing: 0.03em;
}

.contact-form-heading h2 span {
  position: relative;
  color: var(--blue);
}

.contact-form-heading h2 span::after {
  content: "";
  position: absolute;
  right: -3px;
  bottom: 2px;
  left: -3px;
  z-index: -1;
  height: 10px;
  background: #bee8fa;
}

.contact-form-heading > p:last-child {
  margin: 15px 0 0;
  color: #647d8a;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.contact-form-panel {
  overflow: hidden;
  border: 1px solid #d2e3eb;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(17, 66, 95, 0.15);
}

.contact-form-steps {
  display: grid;
  margin: 0;
  padding: 0;
  color: #fff;
  background: linear-gradient(112deg, #06476d, #0076b5);
  grid-template-columns: repeat(2, 1fr);
  list-style: none;
}

.contact-form-steps li {
  position: relative;
  display: flex;
  min-height: 88px;
  padding: 17px 20px;
  align-items: center;
  justify-content: center;
  gap: 11px;
}

.contact-form-steps li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 24px;
  right: 0;
  bottom: 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.22);
}

.contact-form-steps li > span {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 50%;
  color: #a7ddf5;
  place-items: center;
  font-family: Georgia, serif;
  font-size: 13px;
  font-style: italic;
  font-weight: 700;
}

.contact-form-steps li > strong {
  color: #d4eaf4;
  font-size: 14px;
}

.contact-form-steps li.is-current {
  background: rgba(255, 255, 255, 0.1);
}

.contact-form-steps li.is-current > span {
  border-color: var(--orange);
  color: #fff;
  background: var(--orange);
}

.contact-form-steps li.is-current > strong {
  color: #fff;
}

.estimate-form {
  padding: 18px 48px 46px;
}

.estimate-form__row {
  display: grid;
  min-height: 108px;
  padding: 24px 0;
  border-bottom: 1px solid #dce8ed;
  grid-template-columns: 250px 1fr;
  align-items: start;
  gap: 34px;
}

.estimate-form__label {
  display: flex;
  min-height: 58px;
  padding-top: 15px;
  color: var(--ink);
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 6px 9px;
}

.estimate-form__label label,
.estimate-form__label > span:first-child {
  font-size: 16px;
  font-weight: 800;
  line-height: 1.65;
}

.estimate-form__label > small {
  display: block;
  width: 100%;
  margin-top: -3px;
  color: #7d919b;
  font-size: 12px;
  font-weight: 600;
}

.estimate-form__required,
.estimate-form__optional {
  display: inline-flex;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 4px;
  align-items: center;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}

.estimate-form__required {
  color: #fff;
  background: var(--orange);
}

.estimate-form__optional {
  border: 1px solid #c5d8e1;
  color: #708792;
  background: #f2f7f9;
}

.estimate-form__control {
  min-width: 0;
}

.estimate-form__control--short {
  width: min(100%, 390px);
}

.estimate-form input:not([type="checkbox"]),
.estimate-form select,
.estimate-form textarea {
  width: 100%;
  border: 2px solid #d8e4e9;
  border-radius: 9px;
  outline: none;
  color: #284656;
  background: #f5f7f8;
  font: inherit;
  font-size: 16px;
  transition:
    border-color 0.18s ease,
    background 0.18s ease,
    box-shadow 0.18s ease;
}

.estimate-form input:not([type="checkbox"]),
.estimate-form select {
  min-height: 58px;
  padding: 12px 16px;
}

.estimate-form textarea {
  min-height: 128px;
  padding: 15px 16px;
  line-height: 1.75;
  resize: vertical;
}

.estimate-form input::placeholder,
.estimate-form textarea::placeholder {
  color: #8a999f;
  opacity: 1;
}

.estimate-form input:not([type="checkbox"]):hover,
.estimate-form select:hover,
.estimate-form textarea:hover {
  border-color: #b9d3df;
  background: #fff;
}

.estimate-form input:not([type="checkbox"]):focus,
.estimate-form select:focus,
.estimate-form textarea:focus {
  border-color: var(--blue);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(0, 104, 183, 0.12);
}

.estimate-form__control > small {
  display: block;
  margin-top: 7px;
  color: #758a95;
  font-size: 12px;
}

.preferred-dates {
  display: grid;
  gap: 9px;
}

.preferred-date {
  display: grid;
  padding: 10px 11px;
  border: 1px solid #dce7ec;
  border-radius: 10px;
  background: #f8fbfc;
  grid-template-columns: 85px 1fr 1fr;
  align-items: center;
  gap: 9px;
}

.preferred-date > span {
  color: var(--blue-deep);
  font-size: 13px;
  font-weight: 900;
  text-align: center;
}

.preferred-date input,
.preferred-date select {
  min-height: 52px !important;
  background: #fff !important;
}

.estimate-form__privacy {
  margin: 34px auto 0;
  padding: 22px 24px;
  border: 1px solid #d6e4ea;
  border-radius: 11px;
  background: #f5fafc;
  text-align: center;
}

.estimate-form__privacy p {
  margin: 0;
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
}

.estimate-form__consent {
  display: inline-flex;
  color: var(--ink);
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
  text-align: left;
}

.estimate-form__consent input {
  width: 21px;
  height: 21px;
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--blue);
}

.estimate-form__submit:disabled {
  cursor: not-allowed;
  opacity: 0.45;
  animation: none;
  transform: none;
}

.estimate-form__privacy a {
  color: var(--blue);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.estimate-form__submit {
  position: relative;
  display: flex;
  width: min(100%, 520px);
  min-height: 82px;
  margin: 27px auto 0;
  padding: 13px 58px 13px 25px;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.74);
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(135deg, #f4952d, #dd6606);
  box-shadow:
    0 4px 0 #a94a00,
    0 14px 30px rgba(187, 78, 0, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
  align-items: center;
  justify-content: center;
  text-align: center;
  cursor: pointer;
  transition: filter 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.estimate-form__submit span,
.estimate-form__submit strong {
  display: block;
}

.estimate-form__submit strong {
  font-size: 20px;
  letter-spacing: 0.03em;
}

.estimate-form__submit svg {
  position: absolute;
  right: 24px;
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.3;
  transition: transform 0.18s ease;
}

.estimate-form__submit:hover {
  filter: brightness(1.08) saturate(1.05);
  box-shadow:
    0 6px 0 #a94a00,
    0 18px 34px rgba(187, 78, 0, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
  transform: translateY(-2px);
}

.estimate-form__submit:hover svg {
  transform: translateX(4px);
}

.estimate-form__submit:active {
  box-shadow:
    0 1px 0 #a94a00,
    0 7px 15px rgba(187, 78, 0, 0.25);
  transform: translateY(3px);
}

.estimate-form__submit:focus-visible {
  outline: 4px solid rgba(0, 104, 183, 0.28);
  outline-offset: 4px;
}

.estimate-form__notice {
  margin: 15px 0 0;
  color: #70858f;
  font-size: 13px;
  line-height: 1.7;
  text-align: center;
}

.estimate-form__feedback {
  margin: 18px auto 0;
  padding: 15px 17px;
  border: 1px solid #a9d2e5;
  border-radius: 8px;
  color: var(--blue-deep);
  background: #edf8fd;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.75;
  text-align: center;
}

@media (max-width: 820px) {
  .contact-form-section {
    padding: 70px 13px 108px;
    scroll-margin-top: 8px;
  }

  .contact-form-section::before {
    display: none;
  }

  .contact-form-heading {
    margin-bottom: 30px;
  }

  .contact-form-heading__en {
    margin-bottom: 6px;
    font-size: 10px;
  }

  .contact-form-heading__label {
    font-size: 12px;
  }

  .contact-form-heading h2 {
    font-size: 29px;
    line-height: 1.5;
  }

  .contact-form-heading h2 span {
    display: block;
  }

  .contact-form-heading > p:last-child {
    margin-top: 11px;
    font-size: 14px;
    line-height: 1.85;
    text-align: left;
  }

  .contact-form-panel {
    border-radius: 13px;
  }

  .contact-form-steps li {
    min-height: 79px;
    padding: 12px 5px;
    flex-direction: column;
    gap: 5px;
    text-align: center;
  }

  .contact-form-steps li:not(:last-child)::after {
    top: 17px;
    bottom: 17px;
  }

  .contact-form-steps li > span {
    width: 31px;
    height: 31px;
    font-size: 11px;
  }

  .contact-form-steps li > strong {
    font-size: 10px;
  }

  .estimate-form {
    padding: 5px 14px 28px;
  }

  .estimate-form__row {
    display: block;
    min-height: 0;
    padding: 21px 0;
  }

  .estimate-form__label {
    min-height: 0;
    padding: 0 2px;
    margin-bottom: 10px;
    align-items: center;
  }

  .estimate-form__label label,
  .estimate-form__label > span:first-child {
    font-size: 15px;
  }

  .estimate-form__label > small {
    font-size: 12px;
  }

  .estimate-form__required,
  .estimate-form__optional {
    min-height: 22px;
    font-size: 10px;
  }

  .estimate-form__control--short {
    width: 100%;
  }

  .estimate-form input:not([type="checkbox"]),
  .estimate-form select,
  .estimate-form textarea {
    font-size: 16px;
  }

  .estimate-form input:not([type="checkbox"]),
  .estimate-form select {
    min-height: 57px;
    padding: 11px 13px;
  }

  .estimate-form textarea {
    min-height: 132px;
    padding: 13px;
  }

  .estimate-form__control > small {
    font-size: 12px;
    line-height: 1.65;
  }

  .preferred-date {
    padding: 9px;
    grid-template-columns: 70px 1fr;
    gap: 7px;
  }

  .preferred-date > span {
    grid-row: 1 / 3;
    font-size: 12px;
  }

  .preferred-date input,
  .preferred-date select {
    min-height: 50px !important;
  }

  .estimate-form__privacy {
    margin-top: 24px;
    padding: 19px 13px;
  }

  .estimate-form__privacy p {
    font-size: 13px;
  }

  .estimate-form__consent {
    font-size: 12px;
  }

  .estimate-form__submit {
    min-height: 76px;
    margin-top: 22px;
    padding-right: 47px;
    padding-left: 16px;
    border-radius: 10px;
  }

  .estimate-form__submit strong {
    font-size: 18px;
  }

  .estimate-form__submit svg {
    right: 17px;
    width: 22px;
    height: 22px;
  }

  .estimate-form__notice,
  .estimate-form__feedback {
    font-size: 12px;
    line-height: 1.75;
  }
}

@keyframes hero-settle {
  to { transform: scale(1); }
}

@keyframes content-in {
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1180px) {
  .fixed-contact__inner {
    grid-template-columns: repeat(3, 1fr);
  }

  .fixed-contact__lead {
    display: none;
  }

  .hero__content {
    width: min(670px, 61vw);
  }

  .hero__shade {
    background: linear-gradient(90deg, rgba(252, 250, 244, 0.99) 0%, rgba(252, 250, 244, 0.94) 36%, rgba(252, 250, 244, 0.4) 60%, transparent 78%);
  }

}

@media (max-width: 820px) {
  body {
    padding-bottom: calc(74px + env(safe-area-inset-bottom));
  }

  .announcement__inner {
    width: calc(100% - 24px);
    min-height: 0;
    padding: 6px 0 7px;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    font-size: 10px;
  }

  .announcement p {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    column-gap: 5px;
    row-gap: 3px;
    line-height: 1.4;
    text-align: center;
  }

  .announcement p span {
    margin-right: 0;
    padding: 2px 8px;
    font-size: 9px;
  }

  .announcement ul {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 9.5px;
    line-height: 1.4;
  }

  .announcement li {
    white-space: nowrap;
  }

  .announcement li::before {
    margin-right: 4px;
  }

  .site-header {
    height: 66px;
  }

  .site-header__inner {
    width: calc(100% - 24px);
  }

  .brand {
    width: auto;
  }

  .brand img {
    height: 44px;
  }

  .header-contact__phone {
    display: none;
  }

  .hero {
    min-height: 0;
    overflow: visible;
  }

  .hero__visual,
  .hero__shade {
    inset: 0 0 auto;
    height: 55vw;
    min-height: 285px;
  }

  .hero__visual {
    background-position: 69% center;
  }

  .hero__shade {
    background:
      linear-gradient(90deg, rgba(247, 245, 238, 0.82) 0%, rgba(247, 245, 238, 0.18) 53%, rgba(247, 245, 238, 0) 72%),
      linear-gradient(0deg, #f8f6ef 0%, rgba(248, 246, 239, 0) 38%);
  }

  .hero__ai-note {
    top: calc(max(55vw, 285px) - 18px);
    right: 10px;
    bottom: auto;
    font-size: 8px;
  }

  .hero__inner {
    display: block;
    width: 100%;
    min-height: 0;
    padding: 0 0 0;
  }

  .hero__content {
    width: 100%;
  }

  .area-label {
    margin: 17px 16px 0;
    padding: 6px 10px 6px 8px;
    font-size: 10px;
  }

  .area-label svg {
    width: 14px;
  }

  .hero__eyebrow,
  .hero h1 {
    position: relative;
    z-index: 2;
    margin-left: 17px;
  }

  .hero__eyebrow {
    width: 75%;
    margin-top: 22px;
    font-size: 13px;
    letter-spacing: 0.03em;
  }

  .hero h1 {
    width: 78%;
    margin-top: 5px;
    font-size: clamp(28px, 7.6vw, 38px);
    line-height: 1.3;
    text-shadow: 0 1px 12px rgba(255, 255, 255, 0.95);
  }

  .hero h1 strong {
    font-size: 1em;
  }

  .hero h1 strong::after {
    height: 8px;
  }

  .hero__lead {
    margin: 4px 16px 14px;
    padding-top: clamp(42px, 7vw, 76px);
    color: #3d5867;
    font-size: 13px;
    line-height: 1.8;
  }

  .desktop-only {
    display: none;
  }

  .benefit-list {
    display: grid;
    margin: 0;
    padding: 13px 16px;
    border-top: 1px solid #dce9ef;
    border-bottom: 1px solid #dce9ef;
    background: #fff;
    grid-template-columns: repeat(4, 1fr);
  }

  .benefit-list li,
  .benefit-list li:first-child {
    padding: 0 3px;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    font-size: 9px;
    text-align: center;
  }

  .benefit-list b {
    font-size: 10px;
  }

  .benefit-list__icon {
    width: 29px;
    height: 29px;
  }

  .benefit-list__icon svg {
    width: 16px;
  }

  .fixed-contact {
    height: calc(74px + env(safe-area-inset-bottom));
    padding: 5px 5px env(safe-area-inset-bottom);
  }

  .fixed-contact__inner {
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
  }

  .fixed-contact a {
    min-height: 64px;
    border-radius: 6px;
    flex-direction: column;
    text-align: center;
  }

  .fixed-contact a > span {
    font-size: 11px;
    line-height: 1.3;
    white-space: nowrap;
  }

  .fixed-contact a small {
    display: none;
  }

  .fixed-contact__phone > svg,
  .fixed-contact__estimate > svg {
    width: 22px;
    height: 22px;
    margin: 0 0 4px;
  }

  .web-campaign {
    padding: 50px 13px 44px;
  }

  .campaign-heading {
    margin-bottom: 18px;
  }

  .campaign-heading__en {
    margin-bottom: 6px;
    font-size: 9px;
  }

  .campaign-heading h2 {
    font-size: 21px;
    white-space: nowrap;
  }

  .campaign-heading p {
    font-size: 11px;
  }

  .campaign-ticket {
    overflow: visible;
    border-width: 2px;
    border-radius: 15px;
    grid-template-columns: 1fr;
  }

  .campaign-ticket::before,
  .campaign-ticket::after {
    display: none;
  }

  .campaign-ticket__label {
    min-height: 0;
    padding: 18px 8px 16px;
    border-radius: 12px 12px 0 0;
  }

  .campaign-ticket__label::after {
    inset: 6px;
  }

  .campaign-ticket__cat {
    width: 47px;
    height: 47px;
  }

  .campaign-ticket__cat svg {
    width: 35px;
  }

  .campaign-ticket__limited {
    padding: 3px 8px;
    font-size: 9px;
  }

  .campaign-ticket__label strong {
    font-size: 19px;
    letter-spacing: 0.03em;
  }

  .campaign-ticket__label small {
    font-size: 8px;
  }

  .campaign-ticket__offer {
    min-height: 0;
    padding: 14px 7px 18px;
  }

  .campaign-ticket__offer::after {
    display: none;
  }

  .campaign-ticket__offer > p {
    font-size: 12px;
  }

  .campaign-ticket__discount {
    height: 99px;
  }

  .campaign-ticket__discount > span {
    margin-top: 24px;
    font-size: 9px;
  }

  .campaign-ticket__discount > strong {
    font-size: 82px;
  }

  .campaign-ticket__discount b {
    font-size: 27px;
  }

  .campaign-ticket__discount em {
    font-size: 17px;
  }

  .campaign-ticket__offer .campaign-ticket__free {
    padding: 3px 9px;
    font-size: 9px;
  }

  .campaign-ticket__free b {
    font-size: 13px;
  }

  .campaign-ticket__action {
    padding: 20px 15px 17px;
    border-top: 2px dashed #ead9c2;
    grid-column: 1 / -1;
  }

  .campaign-ticket__howto {
    margin-bottom: 13px;
    flex-direction: column;
    gap: 7px;
    text-align: center;
  }

  .campaign-ticket__howto > span {
    writing-mode: horizontal-tb;
    padding: 4px 10px;
  }

  .campaign-ticket__howto p {
    font-size: 11px;
  }

  .campaign-ticket__howto p br:last-of-type {
    display: none;
  }

  .campaign-ticket__howto strong {
    font-size: 14px;
  }

  .campaign-ticket__action > a {
    min-height: 61px;
    font-size: 14px;
  }

  .campaign-notes {
    padding: 0 5px;
    font-size: 9px;
    text-align: left;
  }

  .problems {
    padding: 68px 13px 58px;
  }

  .problems::before {
    height: 36px;
  }

  .problems::after {
    top: 31px;
  }

  .section-heading__en {
    margin-bottom: 6px;
    font-size: 8px;
    letter-spacing: 0.14em;
  }

  .section-heading h2 {
    font-size: 27px;
  }

  .section-heading > p {
    margin-top: 10px;
    font-size: 12px;
  }

  .problem-grid {
    margin-top: 28px;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .problem-card {
    min-height: 126px;
    padding: 17px 18px;
    border-radius: 10px;
    grid-template-columns: 58px 1fr;
    gap: 14px;
  }

  .problem-card__number {
    top: 9px;
    right: 12px;
    font-size: 25px;
  }

  .problem-card__icon {
    width: 58px;
    height: 58px;
  }

  .problem-card__icon svg {
    width: 35px;
    height: 35px;
  }

  .problem-card h3 {
    margin-bottom: 5px;
    font-size: 14px;
  }

  .problem-card p {
    padding-right: 14px;
    font-size: 10px;
    line-height: 1.65;
  }

  .problems__message {
    display: block;
    width: 100vw;
    height: clamp(340px, 94vw, 400px);
    margin: 42px 0 0 calc(50% - 50vw);
    padding: 0;
    border-radius: 0;
  }

  .problems__message-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .problems__message-photo::after {
    background:
      linear-gradient(180deg, rgba(238, 248, 252, 0.98) 0%, rgba(238, 248, 252, 0.92) 39%, rgba(238, 248, 252, 0.24) 69%, rgba(4, 46, 75, 0.1) 100%);
  }

  .problems__message p {
    width: 100%;
    height: 100%;
    padding: 31px 16px;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
  }

  .problems__message p span {
    margin-bottom: 11px;
    font-size: 13px;
  }

  .problems__message p strong {
    width: 100%;
    padding: 10px 12px 12px;
    font-size: clamp(23px, 7vw, 30px);
    line-height: 1.5;
  }

  .problems__message-photo img {
    object-position: 72% center;
  }

  .vendor-anxiety {
    padding: 67px 13px 0;
  }

  .vendor-anxiety::before {
    top: -45px;
    right: -25px;
    font-size: 250px;
  }

  .vendor-anxiety__inner {
    display: block;
    padding-bottom: 42px;
  }

  .vendor-anxiety__intro {
    padding-top: 0;
    text-align: center;
  }

  .vendor-anxiety__step {
    margin-bottom: 10px;
    font-size: 9px;
  }

  .vendor-anxiety h2 {
    font-size: 27px;
    line-height: 1.5;
  }

  .vendor-anxiety__intro > p {
    margin-top: 14px;
    font-size: 11px;
    line-height: 1.75;
  }

  .anxiety-illustration {
    width: 210px;
    height: 120px;
    margin-top: 16px;
    transform: scale(0.87);
    transform-origin: center bottom;
  }

  .anxiety-list {
    margin-top: 15px;
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .anxiety-item {
    display: grid;
    min-height: 104px;
    padding: 16px 38px 16px 15px;
    border-radius: 10px;
    grid-template-columns: 45px 1fr;
    align-items: center;
    flex-direction: initial;
    gap: 12px;
  }

  .anxiety-item__index {
    top: 8px;
    right: 10px;
    font-size: 20px;
  }

  .anxiety-item__icon {
    width: 45px;
    height: 45px;
    margin: 0;
  }

  .anxiety-item__icon svg {
    width: 28px;
    height: 28px;
  }

  .anxiety-item__text p {
    font-size: 9px;
  }

  .anxiety-item h3 {
    font-size: 12px;
    line-height: 1.55;
  }

  .anxiety-item h3 em {
    font-size: 14px;
  }

  .anxiety-item__mark {
    right: -2px;
    bottom: -23px;
    font-size: 78px;
  }

  .vendor-anxiety__closing {
    min-height: 90px;
    padding: 17px 45px 17px 20px;
    border-radius: 12px 12px 0 0;
    text-align: center;
  }

  .vendor-anxiety__closing p {
    font-size: 14px;
    line-height: 1.6;
  }

  .vendor-anxiety__closing > span {
    right: 9px;
    width: 27px;
    height: 27px;
  }

  .vendor-anxiety__closing svg {
    width: 14px;
  }

  .mobile-only {
    display: block;
  }

  .solution {
    padding: 68px 13px 24px;
  }

  .solution-heading h2 {
    font-size: clamp(22px, 6vw, 28px);
    line-height: 1.5;
  }

  .solution-heading > p {
    margin-top: 13px;
    font-size: 11px;
    line-height: 1.8;
  }

  .reasons {
    padding: 38px 13px 62px;
  }

  .reasons::before {
    background-size: 38px 38px;
  }

  .reasons-heading {
    margin-bottom: 31px;
  }

  .reasons-heading__en {
    margin-bottom: 6px;
    font-size: 8px;
  }

  .reasons-heading__label {
    margin-bottom: 4px;
    font-size: 9px;
  }

  .reasons-heading h2 {
    font-size: 29px;
    line-height: 1.4;
  }

  .reasons-heading h2 strong {
    margin: 0 3px;
  }

  .reasons-heading > p:last-child {
    margin-top: 10px;
    font-size: 10px;
    line-height: 1.75;
  }

  .reason-priority {
    gap: 14px;
  }

  .reason-feature,
  .reason-feature--clear,
  .reason-feature--reverse {
    display: flex;
    min-height: 0;
    border-radius: 13px;
    flex-direction: column;
  }

  .reason-feature--clear .reason-feature__content,
  .reason-feature--reverse .reason-feature__content {
    order: -1;
  }

  .reason-feature::after {
    width: 4px;
  }

  .reason-feature__content {
    padding: 26px 21px 25px;
  }

  .reason-feature__head {
    margin-bottom: 13px;
  }

  .reason-feature__number {
    font-size: 8px;
  }

  .reason-feature__number b {
    font-size: 24px;
  }

  .reason-feature__category {
    padding: 4px 8px;
    font-size: 7px;
  }

  .reason-feature h3 {
    margin-bottom: 13px;
    font-size: 22px;
    line-height: 1.48;
  }

  .reason-feature__content > p {
    margin-bottom: 8px;
    font-size: 10px;
    line-height: 1.78;
  }

  .reason-feature__points {
    margin-top: 14px;
    flex-wrap: wrap;
    gap: 8px 13px;
  }

  .reason-feature__points li {
    font-size: 9px;
  }

  .reason-feature__points svg {
    width: 15px;
    height: 15px;
  }

  .reason-feature__visual {
    min-height: 208px;
  }

  .reason-photo-visual__caption {
    right: 21px;
    bottom: 18px;
    left: 21px;
  }

  .reason-photo-visual__caption strong {
    font-size: 23px;
  }

  .clear-visual__receipt {
    width: 136px;
    min-height: 168px;
    padding: 16px 15px;
  }

  .clear-visual__zero {
    right: 22px;
    bottom: 24px;
    width: 68px;
    height: 68px;
  }

  .clear-visual__zero strong {
    font-size: 34px;
  }

  .clear-visual__seal {
    top: 20px;
    right: 18px;
  }

  .purchase-tags {
    margin-top: 13px;
  }

  .purchase-visual {
    min-height: 246px;
    padding: 20px 17px;
  }

  .purchase-visual__base,
  .purchase-visual__buy,
  .purchase-visual__result {
    width: min(100%, 240px);
    padding: 8px 11px;
  }

  .purchase-visual__base strong,
  .purchase-visual__buy strong {
    font-size: 17px;
  }

  .purchase-visual__result strong {
    font-size: 21px;
  }

  .purchase-visual__minus {
    height: 18px;
    font-size: 20px;
    line-height: 18px;
  }

  .purchase-visual__arrow {
    height: 16px;
  }

  .reason-middle-heading {
    margin: 49px 0 20px;
  }

  .reason-middle-heading h3 {
    font-size: 21px;
  }

  .reason-service-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .reason-service-card {
    min-height: 0;
    padding: 22px 20px 21px;
    border-radius: 11px;
  }

  .reason-service-card__head {
    margin-bottom: 10px;
  }

  .reason-service-card__number {
    font-size: 37px;
  }

  .reason-service-card__icon {
    width: 53px;
    height: 53px;
  }

  .reason-service-card__icon svg {
    width: 32px;
    height: 32px;
  }

  .reason-service-card h4 {
    margin: 5px 0 12px;
    font-size: 17px;
  }

  .reason-service-card h4 strong {
    font-size: 19px;
  }

  .reason-service-card > p {
    font-size: 10px;
    line-height: 1.75;
  }

  .reason-service-card ul {
    margin-top: 14px;
  }

  .reason-trust {
    margin-top: 38px;
    gap: 10px;
  }

  .reason-wide {
    display: block;
    min-height: 0;
    padding: 0;
    border-radius: 12px;
  }

  .reason-wide__number {
    position: absolute;
    top: 21px;
    left: 20px;
    height: auto;
    border: 0;
    align-items: flex-start;
  }

  .reason-wide__number strong {
    font-size: 40px;
    line-height: 1;
  }

  .reason-wide__icon {
    position: absolute;
    top: 18px;
    right: 20px;
    width: 76px;
    height: 76px;
  }

  .reason-wide__icon svg {
    width: 47px;
    height: 47px;
  }

  .reason-wide__content {
    padding: 105px 20px 25px;
  }

  .reason-wide h3 {
    margin-top: 5px;
    font-size: 19px;
  }

  .reason-wide h3 strong {
    font-size: 21px;
  }

  .reason-wide__content > p {
    font-size: 10px;
    line-height: 1.75;
  }

  .reason-wide__tags {
    margin-top: 12px;
  }

  .reasons-cta {
    display: block;
    min-height: 0;
    margin-top: 30px;
    padding: 0;
    border-radius: 13px;
  }

  .reasons-campaign__head {
    display: block;
    min-height: 0;
    padding: 22px 17px 20px;
  }

  .reasons-campaign__title > span {
    font-size: 9px;
  }

  .reasons-campaign__title h3 {
    margin-top: 9px;
    font-size: 21px;
  }

  .reasons-campaign__title p {
    font-size: 11px;
    line-height: 1.7;
  }

  .reasons-campaign__offer {
    min-height: 0;
    margin-top: 17px;
    padding: 13px 14px;
  }

  .reasons-campaign__offer > strong {
    font-size: 24px;
  }

  .reasons-campaign__flow {
    display: block;
    padding: 19px 13px 20px;
  }

  .reasons-campaign__flow > p {
    margin-bottom: 13px;
    text-align: center;
  }

  .reasons-campaign__flow > p strong {
    font-size: 14px;
  }

  .reasons-campaign__flow ol {
    gap: 6px;
  }

  .reasons-campaign__flow li {
    min-height: 100px;
    padding: 10px 5px;
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }

  .reasons-campaign__flow li:not(:last-child)::after {
    display: none;
  }

  .reasons-campaign__flow li > span {
    width: 29px;
    height: 29px;
    margin: 0 0 6px;
    font-size: 12px;
  }

  .reasons-campaign__flow li > strong {
    font-size: 9px;
    line-height: 1.55;
  }

  .reasons-cta__body {
    display: block;
    padding: 20px 14px 22px;
  }

  .reasons-cta__copy {
    margin-bottom: 15px;
    text-align: center;
  }

  .reasons-cta__copy span {
    font-size: 9px;
  }

  .reasons-cta__copy p {
    font-size: 15px;
  }

  .reasons-cta__actions {
    display: block;
    padding-left: 0;
    border-left: 0;
  }

  .reasons-cta__actions a {
    min-height: 60px;
  }


  .reasons-cta__form {
    margin-top: 8px;
  }

  .reasons-campaign__note {
    padding: 9px 12px 10px;
    font-size: 9px;
  }

  .trust {
    padding: 68px 13px 58px;
  }

  .trust-heading {
    margin-bottom: 29px;
  }

  .trust-heading__en {
    margin-bottom: 6px;
    font-size: 8px;
  }

  .trust-heading h2 {
    font-size: 28px;
  }

  .trust-heading p {
    margin-top: 10px;
    font-size: 10px;
    line-height: 1.75;
  }

  .trust-layout {
    display: block;
  }

  .trust-assurance {
    min-height: 0;
    padding: 28px 24px 24px;
    border-radius: 13px;
  }

  .trust-assurance__mark {
    width: 90px;
    height: 100px;
  }

  .trust-assurance__mark span {
    margin-top: 64px;
    font-size: 8px;
  }

  .trust-assurance__lead {
    margin: 16px 0 14px;
  }

  .trust-assurance__lead span {
    font-size: 9px;
  }

  .trust-assurance__lead strong {
    font-size: 20px;
  }

  .trust-assurance__divider {
    margin-bottom: 12px;
  }

  .trust-assurance ul {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 10px;
  }

  .trust-assurance li {
    padding: 8px 3px;
    font-size: 9px;
  }

  .trust-assurance li span {
    margin-right: 6px;
    font-size: 14px;
  }

  .trust-assurance__name {
    margin-top: 17px;
    font-size: 16px;
  }

  .trust-grid {
    margin-top: 10px;
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .trust-card {
    min-height: 0;
    padding: 20px 18px 19px;
    border-radius: 10px;
  }

  .trust-card__top {
    margin-bottom: 10px;
  }

  .trust-card__number {
    font-size: 27px;
  }

  .trust-card__icon {
    width: 43px;
    height: 43px;
    margin-left: 9px;
  }

  .trust-card__icon svg {
    width: 27px;
    height: 27px;
  }

  .trust-card__question {
    font-size: 8px;
  }

  .trust-card h3 {
    margin-bottom: 9px;
    font-size: 14px;
  }

  .trust-card h3 strong {
    font-size: 17px;
  }

  .trust-card__description {
    font-size: 9px;
    line-height: 1.75;
  }

  .trust-card__proof {
    margin-top: 11px;
  }

  .trust-credentials {
    display: block;
    min-height: 0;
    margin-top: 15px;
    border-radius: 10px;
  }

  .trust-credentials__intro {
    padding: 15px 18px;
    justify-content: center;
  }

  .trust-credentials__intro > svg {
    width: 39px;
    height: 39px;
  }

  .trust-credentials__intro strong {
    font-size: 15px;
  }

  .trust-credential {
    min-height: 64px;
    padding: 11px 17px;
    border-right: 0;
    border-bottom: 1px solid #dbe8ed;
    justify-content: flex-start;
  }

  .trust-credential:last-child {
    border-bottom: 0;
  }

  .trust-credential small {
    font-size: 7px;
  }

  .trust-credential strong {
    font-size: 10px;
  }
}

@media (max-width: 380px) {
  .brand img {
    height: 40px;
  }

  .hero__eyebrow {
    width: 80%;
  }

  .hero h1 {
    width: 86%;
    font-size: 28px;
  }

  .hero__lead {
    padding-top: 36px;
  }
}

@media (max-width: 390px) {
  .narrow-mobile-only {
    display: block;
  }
}

@media (max-width: 360px) {
  .fixed-contact a > span {
    font-size: 10px;
    letter-spacing: -0.03em;
    white-space: normal;
  }

  .fixed-contact__estimate > span {
    max-width: 82px;
  }

  .company-profile dl > div {
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 7px;
  }

  .company-profile dd strong,
  .company-profile dd a {
    font-size: 15px;
  }
}

/* Readability pass: larger supporting copy for senior audiences */
.announcement__inner {
  font-size: 13px;
}


.announcement p span,
.header-contact__phone > span{
  font-size: 12px;
}

.area-label {
  font-size: 14px;
}

.hero__lead {
  font-size: clamp(16px, 1.2vw, 18px);
}

.benefit-list li {
  font-size: 13px;
}

.benefit-list b {
  font-size: 16px;
}

.campaign-heading__en,
.section-heading__en,
.vendor-anxiety__step,
.reasons-heading__en,
.trust-heading__en {
  font-size: 12px;
}

.campaign-heading p,
.section-heading > p,
.solution-heading > p,
.reasons-heading > p:last-child,
.trust-heading p {
  font-size: 16px;
}

.campaign-ticket__limited,
.campaign-ticket__label small {
  font-size: 12px;
}

.campaign-ticket__offer > p {
  font-size: 16px;
}

.campaign-ticket__offer .campaign-ticket__free {
  font-size: 14px;
}

.campaign-ticket__howto > span,
.campaign-ticket__action a small {
  font-size: 11px;
}

.campaign-ticket__howto p {
  font-size: 14px;
}

.campaign-ticket__howto strong {
  font-size: 19px;
}

.campaign-ticket__action > a {
  font-size: 17px;
}

.campaign-notes {
  font-size: 12px;
}

.problem-card h3 {
  font-size: 18px;
}

.problem-card p {
  font-size: 14px;
}

.vendor-anxiety__intro > p {
  font-size: 15px;
}

.anxiety-item__text p {
  font-size: 12px;
}

.anxiety-item h3 {
  font-size: 16px;
}

.anxiety-item h3 em {
  font-size: 18px;
}

.reasons-heading__label {
  font-size: 14px;
}

.reason-feature__number,
.reason-feature__category {
  font-size: 11px;
}

.reason-feature__content > p {
  font-size: 15px;
}

.reason-feature__points li {
  font-size: 12px;
}

.purchase-visual > p {
  font-size: 13px;
}

.clear-visual__receipt small,
.purchase-visual > small {
  font-size: 10px;
}

.purchase-visual__base span,
.purchase-visual__buy span,
.purchase-visual__result span {
  font-size: 12px;
}

.purchase-tags span {
  font-size: 11px;
}

.reason-middle-heading span,
.reason-service-card__en,
.reason-wide__en {
  font-size: 10px;
}

.reason-service-card > p,
.reason-wide__content > p {
  font-size: 14px;
}

.reason-service-card li,
.reason-wide__tags span {
  font-size: 10px;
}

.reason-wide__number span {
  font-size: 10px;
}

.reasons-cta__copy span {
  font-size: 12px;
}

.reasons-cta__copy p {
  font-size: 20px;
}

.reasons-cta__actions small,
.reasons-campaign__note {
  font-size: 10px;
}

.trust-assurance__mark span,
.trust-assurance__lead span,
.trust-assurance li {
  font-size: 12px;
}

.trust-assurance__name small {
  font-size: 10px;
}

.trust-card__category {
  font-size: 9px;
}

.trust-card__question {
  font-size: 12px;
}

.trust-card h3 {
  font-size: 18px;
}

.trust-card h3 strong {
  font-size: 21px;
}

.trust-card__description {
  font-size: 14px;
}

.trust-card__proof span {
  font-size: 10px;
}

.trust-credentials__intro span,
.trust-credential small {
  font-size: 10px;
}

.trust-credential strong {
  font-size: 12px;
}

@media (max-width: 820px) {
  .announcement__inner {
    font-size: 9.5px;
  }

  .announcement p span {
    font-size: 8.5px;
  }

  .area-label {
    font-size: 11px;
  }

  .hero__eyebrow {
    font-size: 14px;
  }

  .hero__lead {
    font-size: 15px;
  }

  .benefit-list li {
    font-size: 11px;
  }

  .benefit-list b {
    font-size: 12px;
  }

  .campaign-heading__en,
  .section-heading__en,
  .vendor-anxiety__step,
  .reasons-heading__en,
  .trust-heading__en {
    font-size: 10px;
  }

  .campaign-heading p,
  .section-heading > p,
  .solution-heading > p,
  .reasons-heading > p:last-child,
  .trust-heading p {
    font-size: 13px;
  }

  .campaign-ticket__limited,
  .campaign-ticket__label small,
  .campaign-ticket__howto > span,
  .campaign-ticket__action a small {
    font-size: 10px;
  }

  .campaign-ticket__offer > p,
  .campaign-ticket__offer .campaign-ticket__free,
  .campaign-ticket__howto p,
  .campaign-ticket__action > a {
    font-size: 13px;
  }

  .campaign-ticket__howto strong {
    font-size: 16px;
  }

  .campaign-notes {
    font-size: 11px;
  }

  .problem-card {
    min-height: 145px;
  }

  .problem-card h3 {
    font-size: 16px;
  }

  .problem-card p {
    font-size: 13px;
  }

  .vendor-anxiety__intro > p {
    font-size: 13px;
  }

  .anxiety-item {
    min-height: 116px;
  }

  .anxiety-item__text p {
    font-size: 11px;
  }

  .anxiety-item h3 {
    font-size: 14px;
  }

  .anxiety-item h3 em {
    font-size: 16px;
  }

  .vendor-anxiety__closing p {
    font-size: 16px;
  }

  .reasons-heading__label {
    font-size: 11px;
  }

  .reason-feature__number,
  .reason-feature__category {
    font-size: 9px;
  }

  .reason-feature__content > p {
    font-size: 13px;
  }

  .reason-feature__points li {
    font-size: 11px;
  }

  .purchase-visual > p,
  .purchase-visual__base span,
  .purchase-visual__buy span,
  .purchase-visual__result span {
    font-size: 11px;
  }

  .purchase-tags span,
  .reason-middle-heading span,
  .reason-service-card__en,
  .reason-wide__en,
  .reason-service-card li,
  .reason-wide__tags span {
    font-size: 10px;
  }

  .reason-service-card > p,
  .reason-wide__content > p {
    font-size: 13px;
  }

  .reasons-cta__copy span {
    font-size: 11px;
  }

  .reasons-cta__copy p {
    font-size: 17px;
  }

  .reasons-cta__actions small,
  .reasons-campaign__note {
    font-size: 10px;
  }

  .trust-assurance__mark span,
  .trust-assurance__lead span,
  .trust-assurance li {
    font-size: 11px;
  }

  .trust-assurance__name small {
    font-size: 9px;
  }

  .trust-card__category,
  .trust-card__question,
  .trust-card__proof span {
    font-size: 10px;
  }

  .trust-card h3 {
    font-size: 16px;
  }

  .trust-card h3 strong {
    font-size: 19px;
  }

  .trust-card__description {
    font-size: 12px;
  }

  .trust-credentials__intro span,
  .trust-credential small {
    font-size: 9px;
  }

  .trust-credential strong {
    font-size: 11px;
  }
}

/* Readability pass 2: prioritize explanatory copy over compact card density */
.hero__lead {
  font-size: 18px;
  line-height: 2;
}

.campaign-notes {
  font-size: 14px;
  line-height: 1.8;
}

.campaign-heading p,
.section-heading > p,
.solution-heading > p,
.reasons-heading > p:last-child,
.trust-heading p {
  font-size: 17px;
  line-height: 1.9;
}

.campaign-ticket__howto p {
  font-size: 16px;
  line-height: 1.75;
}

.problem-card p {
  font-size: 16px;
  line-height: 1.85;
}

.vendor-anxiety__intro > p {
  font-size: 17px;
  line-height: 2;
}

.anxiety-item__text p {
  font-size: 14px;
}

.anxiety-item h3 {
  font-size: 17px;
}

.anxiety-item h3 em {
  font-size: 19px;
}

.reason-feature__content > p,
.reason-service-card > p,
.reason-wide__content > p {
  font-size: 16px;
  line-height: 1.9;
}

.reason-feature__points li {
  font-size: 13px;
}

.purchase-tags span,
.reason-service-card li,
.reason-wide__tags span {
  font-size: 12px;
}

.trust-card__question {
  font-size: 14px;
}

.trust-card__description {
  font-size: 16px;
  line-height: 1.9;
}

.trust-card__proof span {
  font-size: 12px;
}

.trust-credential small {
  font-size: 11px;
}

.trust-credential strong {
  font-size: 14px;
}

@media (max-width: 820px) {
  .hero__lead {
    font-size: 16px;
    line-height: 1.9;
  }

  .campaign-notes {
    font-size: 13px;
  }

  .campaign-heading p,
  .section-heading > p,
  .solution-heading > p,
  .reasons-heading > p:last-child,
  .trust-heading p {
    font-size: 14px;
    line-height: 1.85;
  }

  .campaign-ticket__howto p {
    font-size: 12px;
    white-space: nowrap;
  }

  .campaign-ticket__howto strong {
    font-size: 15px;
  }

  .problem-card {
    min-height: 162px;
  }

  .problem-card p {
    padding-right: 18px;
    font-size: 15px;
    line-height: 1.8;
  }

  .vendor-anxiety__intro > p {
    font-size: 15px;
    line-height: 1.9;
  }

  .anxiety-item {
    min-height: 126px;
  }

  .anxiety-item__text p {
    font-size: 13px;
  }

  .anxiety-item h3 {
    font-size: 15px;
  }

  .anxiety-item h3 em {
    font-size: 17px;
  }

  .reason-feature__content > p,
  .reason-service-card > p,
  .reason-wide__content > p {
    font-size: 15px;
    line-height: 1.85;
  }

  .reason-feature__points li {
    font-size: 12px;
  }

  .purchase-tags span,
  .reason-service-card li,
  .reason-wide__tags span {
    font-size: 11px;
  }

  .trust-card__question {
    font-size: 12px;
  }

  .trust-card__description {
    font-size: 14px;
    line-height: 1.85;
  }

  .trust-card__proof span {
    font-size: 11px;
  }

  .trust-credential small {
    font-size: 10px;
  }

  .trust-credential strong {
    font-size: 13px;
  }
}

/* Readability pass 3: enlarge the trust assurance panel shown in review */
.trust-assurance {
  padding-top: 38px;
  padding-bottom: 34px;
}

.trust-assurance__mark {
  width: 145px;
  height: 160px;
}

.trust-assurance__mark span {
  margin-top: 104px;
  font-size: 15px;
}

.trust-assurance__lead {
  margin: 25px 0 23px;
}

.trust-assurance__lead span {
  margin-bottom: 9px;
  font-size: 16px;
}

.trust-assurance__lead strong {
  font-size: 31px;
  line-height: 1.55;
}

.trust-assurance__divider {
  margin-bottom: 18px;
}

.trust-assurance li {
  padding: 15px 8px;
  font-size: 16px;
}

.trust-assurance li span {
  margin-right: 14px;
  font-size: 23px;
}

.trust-assurance__name {
  font-size: 25px;
}

.trust-assurance__name small {
  margin-bottom: 5px;
  font-size: 14px;
}

@media (max-width: 820px) {
  .trust-assurance {
    padding: 30px 22px 28px;
  }

  .trust-assurance__mark {
    width: 72px;
    height: 80px;
  }

  .trust-assurance__mark span {
    margin-top: 50px;
    font-size: 10px;
  }

  .trust-assurance__lead {
    margin: 21px 0 19px;
  }

  .trust-assurance__lead span {
    font-size: 15px;
  }

  .trust-assurance__lead strong {
    font-size: 29px;
  }

  .trust-assurance ul {
    display: block;
  }

  .trust-assurance li {
    padding: 14px 7px;
    font-size: 15px;
  }

  .trust-assurance li span {
    margin-right: 12px;
    font-size: 22px;
  }

  .trust-assurance__name {
    margin-top: 26px;
    font-size: 23px;
  }

  .trust-assurance__name small {
    font-size: 13px;
  }
}

@media (max-width: 820px) {
  .comparison {
    padding: 68px 13px 58px;
  }

  .comparison::before {
    top: 16px;
    font-size: 130px;
  }

  .comparison-heading__en {
    margin-bottom: 6px;
    font-size: 10px;
  }

  .comparison-heading__label {
    font-size: 11px;
  }

  .comparison-heading h2 {
    font-size: 29px;
  }

  .comparison-heading > p:last-child {
    margin-top: 11px;
    font-size: 14px;
    line-height: 1.85;
  }

  .comparison-table-wrap {
    margin-top: 24px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .comparison-table,
  .comparison-table tbody {
    display: block;
    width: 100%;
  }

  .comparison-table thead {
    display: none;
  }

  .comparison-table tbody tr {
    display: grid;
    margin-bottom: 10px;
    overflow: hidden;
    border: 1px solid #cfdee5;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(17, 66, 95, 0.07);
    grid-template-columns: 1fr 1fr;
  }

  .comparison-table tbody th,
  .comparison-table tbody td {
    height: auto;
    border: 0;
  }

  .comparison-table tbody th {
    display: flex;
    min-height: 66px;
    padding: 9px 14px;
    border-bottom: 1px solid #d9e6ec;
    grid-column: 1 / -1;
    align-items: center;
    justify-content: flex-start;
    font-size: 16px;
    text-align: left;
  }

  .comparison-table tbody th > span:last-child {
    margin: 0 0 0 10px;
  }

  .comparison-table__icon {
    width: 43px;
    height: 43px;
    margin: 0;
  }

  .comparison-table__icon svg {
    width: 27px;
    height: 27px;
  }

  .comparison-table tbody td,
  .comparison-table tbody td.comparison-table__positive {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 178px;
    padding: 42px 11px 15px;
    border-right: 1px solid #dce7ec;
    background: #fff;
    align-items: center;
    flex-direction: column;
    font-size: 13px;
    line-height: 1.65;
    text-align: center;
  }

  .comparison-table tbody td:last-child {
    border-right: 0;
  }

  .comparison-table tbody td.comparison-table__positive {
    background: #eff8fd;
  }

  .comparison-table tbody td::before {
    content: attr(data-label);
    position: absolute;
    top: 11px;
    color: #6f818a;
    font-size: 10px;
    font-weight: 800;
  }

  .comparison-table tbody td.comparison-table__positive::before {
    color: var(--blue);
  }

  .comparison-table tbody td.comparison-table__positive::after {
    top: 0;
    right: 0;
    bottom: auto;
    width: auto;
    height: 3px;
  }

  .comparison-table tbody td > .comparison-table__check,
  .comparison-table tbody td > .comparison-table__minus {
    display: grid;
    width: 32px;
    height: 32px;
    margin: 0 0 8px;
  }

  .comparison-table tbody td > p {
    display: block;
    width: 100%;
    font-size: 13px;
  }

  .comparison-table tbody td > p br {
    display: none;
  }

  .comparison-table tbody td strong {
    font-size: 14px;
    line-height: 1.55;
  }

  .comparison-table tbody td small {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.55;
  }

  .comparison-note {
    margin-top: 11px;
    font-size: 12px;
    line-height: 1.75;
    text-align: left;
  }

}

@media (max-width: 820px) {
  .pricing {
    padding: 68px 13px 58px;
  }

  .pricing-heading {
    margin-bottom: 29px;
  }

  .pricing-heading__en {
    margin-bottom: 6px;
    font-size: 10px;
  }

  .pricing-heading__label {
    font-size: 11px;
  }

  .pricing-heading h2 {
    font-size: 29px;
  }

  .pricing-heading > p:last-child {
    margin-top: 11px;
    font-size: 14px;
    line-height: 1.85;
  }

  .pricing-packs {
    border-radius: 12px;
  }

  .pricing-packs__lead {
    display: block;
    min-height: 0;
    padding: 20px 17px 18px;
    text-align: center;
  }

  .pricing-packs__lead p strong {
    font-size: 21px;
  }

  .pricing-packs__lead > small {
    min-height: 34px;
    margin-top: 12px;
    padding: 6px 13px;
    font-size: 12px;
  }

  .pricing-pack-grid {
    padding: 10px;
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .pricing-pack {
    display: grid;
    min-height: 0;
    padding: 20px 16px 17px;
    grid-template-columns: 0.82fr 1.18fr;
    align-items: center;
    column-gap: 14px;
  }

  .pricing-pack__head {
    grid-column: 1 / -1;
  }

  .pricing-pack__head h3 {
    font-size: 21px;
  }

  .pricing-pack__head small {
    font-size: 13px;
  }

  .pricing-pack__vehicle {
    min-height: 106px;
    margin: 15px 0 0;
    grid-row: 2 / 4;
  }

  .pricing-pack__vehicle svg {
    width: 92px;
  }

  .pricing-pack__vehicle span {
    font-size: 12px;
  }

  .pricing-pack__use {
    min-height: 0;
    margin-top: 15px;
    font-size: 14px;
    text-align: left;
  }

  .pricing-pack__price {
    min-height: 0;
    margin-top: 8px;
    padding-top: 8px;
  }

  .pricing-pack__price > small,
  .pricing-pack__price > span {
    font-size: 12px;
  }

  .pricing-pack__price > strong b {
    font-size: 28px;
  }

  .pricing-packs__notes {
    padding: 2px 15px 16px;
  }

  .pricing-packs__notes p {
    font-size: 12px;
    line-height: 1.7;
  }

  .pricing-structure {
    display: block;
    border-radius: 12px;
  }

  .pricing-structure__factors {
    padding: 26px 18px 22px;
  }

  .pricing-structure__title > span {
    font-size: 11px;
  }

  .pricing-structure__title h3 {
    font-size: 22px;
  }

  .pricing-structure__title > p {
    font-size: 14px;
  }

  .pricing-factor-grid {
    margin-top: 19px;
    grid-template-columns: 1fr;
  }

  .pricing-factor:last-child {
    grid-column: auto;
  }

  .pricing-factor {
    min-height: 82px;
    padding: 11px 13px;
  }

  .pricing-factor__icon {
    width: 49px;
    height: 49px;
    margin-right: 12px;
  }

  .pricing-factor small {
    font-size: 10px;
  }

  .pricing-factor strong {
    font-size: 15px;
  }

  .pricing-factor p > span {
    font-size: 13px;
  }

  .pricing-formula {
    padding: 27px 18px 25px;
  }

  .pricing-formula__label {
    font-size: 9px;
  }

  .pricing-formula > h3 {
    margin-bottom: 16px;
    font-size: 22px;
  }

  .pricing-formula__cost,
  .pricing-formula__purchase,
  .pricing-formula__result {
    padding: 11px 13px;
  }

  .pricing-formula__cost > span,
  .pricing-formula__purchase > span,
  .pricing-formula__result > span {
    font-size: 12px;
  }

  .pricing-formula__cost > strong,
  .pricing-formula__purchase > strong {
    font-size: 15px;
  }

  .pricing-formula__result > strong {
    font-size: 18px;
  }

  .pricing-formula__cost > small,
  .pricing-formula__purchase > small,
  .pricing-formula__result > small {
    font-size: 11px;
  }

  .pricing-formula__example p {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 4px 7px;
  }

  .pricing-formula__example b {
    font-size: 12px;
  }

  .pricing-formula__example strong {
    font-size: 14px;
  }

  .pricing-formula__example > small {
    font-size: 10px;
  }

  .pricing-room-guide {
    margin-top: 13px;
    padding: 22px 13px 17px;
    border-radius: 11px;
  }

  .pricing-room-guide__heading {
    display: block;
    margin-bottom: 17px;
    text-align: center;
  }

  .pricing-room-guide__heading > span {
    font-size: 9px;
  }

  .pricing-room-guide__heading h3 {
    margin-top: 3px;
    font-size: 21px;
  }

  .pricing-room-guide__heading p {
    margin-top: 7px;
    font-size: 14px;
    line-height: 1.75;
  }

  .pricing-room-guide > ul {
    grid-template-columns: 1fr 1fr;
    gap: 7px;
  }

  .pricing-room-guide > ul li {
    min-height: 137px;
    padding: 17px 7px 13px;
  }

  .pricing-room-guide > ul li > span {
    font-size: 15px;
  }

  .pricing-room-guide > ul small {
    font-size: 12px;
  }

  .pricing-room-guide > ul strong {
    font-size: 16px;
  }

  .pricing-room-guide > ul strong b {
    font-size: 21px;
  }

  .pricing-room-guide__note {
    margin-top: 12px;
    font-size: 12px;
    line-height: 1.75;
    text-align: left;
  }

  .pricing-promises {
    margin-top: 13px;
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .pricing-promise {
    min-height: 0;
    padding: 21px 19px 22px;
    border-radius: 10px;
  }

  .pricing-promise__photo {
    margin: -21px -19px 15px;
  }

  .pricing-promise__photo img {
    height: 128px;
  }

  .pricing-promise__number {
    top: 14px;
    right: 16px;
    font-size: 32px;
  }

  .pricing-promise__tag {
    font-size: 11px;
  }

  .pricing-promise h3 {
    font-size: 17px;
  }

  .pricing-promise h3 strong {
    font-size: 19px;
  }

  .pricing-promise p {
    font-size: 14px;
    line-height: 1.85;
  }

  .payment-methods {
    display: block;
    min-height: 0;
    margin-top: 13px;
    padding: 22px 14px 14px;
    border-radius: 10px;
  }

  .payment-methods__heading {
    margin-bottom: 18px;
    text-align: center;
  }

  .payment-methods__heading h3 {
    font-size: 21px;
  }

  .payment-methods__cards {
    min-height: 0;
    padding: 13px 10px;
    border-radius: 7px;
  }
}

@media (max-width: 820px) {
  .cases-voices {
    padding: 68px 13px 58px;
  }

  .cases-voices::before {
    display: none;
  }

  .cases-heading {
    margin-bottom: 29px;
  }

  .cases-heading__en,
  .voices-heading__en {
    margin-bottom: 6px;
    font-size: 10px;
  }

  .cases-heading__label {
    font-size: 11px;
  }

  .cases-heading h2 {
    font-size: 29px;
  }

  .cases-heading > p:last-child {
    margin-top: 11px;
    font-size: 14px;
    line-height: 1.85;
  }

  .featured-case {
    border-radius: 12px;
  }

  .featured-case__header {
    display: block;
    padding: 20px 17px 17px;
  }

  .featured-case__title > span {
    font-size: 9px;
  }

  .featured-case__title small {
    font-size: 11px;
  }

  .featured-case__title strong {
    font-size: 20px;
  }

  .featured-case__facts {
    display: grid;
    margin-top: 16px;
    grid-template-columns: repeat(3, 1fr);
    gap: 5px;
  }

  .featured-case__facts > div {
    min-width: 0;
    padding: 8px 4px;
  }

  .featured-case__facts small {
    font-size: 9px;
  }

  .featured-case__facts strong {
    font-size: 11px;
  }

  .featured-case__facts strong b {
    font-size: 15px;
  }

  .before-after {
    display: block;
    padding: 13px;
  }

  .before-after__item img {
    height: auto;
    aspect-ratio: 468 / 270;
  }

  .before-after__label {
    top: 8px;
    left: 8px;
  }

  .before-after__arrow {
    width: 41px;
    height: 41px;
    margin: -3px auto;
    transform: rotate(90deg);
  }

  .featured-case__story {
    display: block;
    padding: 23px 18px 20px;
  }

  .featured-case__story-title > span {
    font-size: 11px;
  }

  .featured-case__story-title h3 {
    margin-bottom: 15px;
    font-size: 17px;
  }

  .featured-case__story-title h3 strong {
    font-size: 19px;
  }

  .featured-case__story > p {
    padding: 0;
    border: 0;
    font-size: 14px;
    line-height: 1.85;
  }

  .featured-case__story > p + p {
    margin-top: 10px;
  }

  .staff-comment {
    display: block;
    margin: 0 13px 13px;
    padding: 17px;
    text-align: center;
  }

  .staff-comment img {
    width: 72px;
    height: 72px;
    margin: 0 auto 9px;
  }

  .staff-comment span {
    font-size: 12px;
  }

  .staff-comment p {
    font-size: 14px;
    line-height: 1.85;
    text-align: left;
  }

  .case-list-heading {
    margin: 46px 0 19px;
  }

  .case-list-heading h3 {
    font-size: 21px;
  }

  .case-list {
    display: flex;
    margin: 0 -13px;
    padding: 0 13px 8px;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .case-list::-webkit-scrollbar {
    display: none;
  }

  .case-card {
    flex: 0 0 82%;
    max-width: 340px;
    scroll-snap-align: center;
    border-radius: 11px;
  }

  .case-card__image img {
    height: auto;
    aspect-ratio: 468 / 270;
  }

  .case-card__content {
    padding: 21px 18px 19px;
  }

  .case-card__category {
    font-size: 11px;
  }

  .case-card h3 {
    font-size: 17px;
  }

  .case-card h3 strong {
    font-size: 19px;
  }

  .case-card__content > p {
    font-size: 14px;
    line-height: 1.85;
  }

  .case-card dl {
    margin-top: 15px;
  }

  .case-card dt {
    font-size: 9px;
  }

  .case-card dd {
    font-size: 11px;
  }

  .case-card dd b {
    font-size: 14px;
  }

  .voices-heading {
    margin: 54px 0 21px;
  }

  .voices-heading h3 {
    font-size: 25px;
  }

  .voices-heading > p {
    font-size: 14px;
    line-height: 1.75;
  }

  .voice-grid {
    display: flex;
    margin: 0 -13px;
    padding: 0 13px 8px;
    gap: 9px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .voice-grid::-webkit-scrollbar {
    display: none;
  }

  .voice-card {
    flex: 0 0 78%;
    max-width: 320px;
    scroll-snap-align: center;
    min-height: 0;
    padding: 22px 18px 20px;
    border-radius: 10px;
  }

  .voice-card__customer img {
    width: 67px;
    height: 67px;
  }

  .voice-card__customer strong {
    font-size: 16px;
  }

  .voice-card__customer span {
    font-size: 12px;
  }

  .voice-card__customer small {
    font-size: 10px;
  }

  .voice-card h4 {
    font-size: 19px;
  }

  .voice-card__text {
    font-size: 14px;
    line-height: 1.9;
  }

  .voice-card__tags span {
    font-size: 11px;
  }

  .cases-voices__note {
    font-size: 12px;
    line-height: 1.75;
    text-align: left;
  }

}

@media (max-width: 820px) {
  .warning {
    padding: 67px 13px 58px;
  }

  .warning::before {
    top: -20px;
    right: -15px;
    font-size: 210px;
  }

  .warning-heading {
    display: block;
    margin-bottom: 28px;
    text-align: center;
  }

  .warning-heading__icon {
    width: 79px;
    height: 79px;
    margin: 0 auto 12px;
  }

  .warning-heading__icon svg {
    width: 48px;
  }

  .warning-heading__en {
    font-size: 10px;
  }

  .warning-heading__label {
    font-size: 11px;
  }

  .warning-heading h2 {
    font-size: 29px;
  }

  .warning-heading > div > p:last-child {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.85;
  }

  .warning-intro {
    display: block;
    min-height: 0;
    border-radius: 12px;
  }

  .warning-intro__visual {
    height: 292px;
  }

  .warning-truck {
    bottom: 35px;
    left: 19px;
  }

  .warning-truck svg {
    width: 177px;
  }

  .warning-truck span {
    top: 55px;
    left: 32px;
    font-size: 14px;
  }

  .warning-intro__bill {
    top: 29px;
    right: 22px;
    width: 122px;
    min-height: 161px;
    padding: 15px 14px;
  }

  .warning-intro__bill strong {
    font-size: 16px;
  }

  .warning-intro__alert {
    top: 27px;
    left: 20px;
    width: 55px;
    height: 55px;
    font-size: 31px;
  }

  .warning-intro__content {
    padding: 24px 18px 20px;
  }

  .warning-intro__content > span {
    font-size: 11px;
  }

  .warning-intro__content h3 {
    font-size: 23px;
  }

  .warning-intro__content h3 strong {
    font-size: 26px;
  }

  .warning-intro__content p {
    font-size: 14px;
    line-height: 1.85;
  }

  .warning-cases {
    margin-top: 10px;
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .warning-case {
    min-height: 0;
    padding: 21px 18px 20px;
    border-radius: 10px;
  }

  .warning-case__photo {
    margin: -21px -18px 14px;
  }

  .warning-case__photo img {
    height: 128px;
  }

  .warning-case__tag {
    font-size: 11px;
  }

  .warning-case h3 {
    font-size: 17px;
  }

  .warning-case h3 strong {
    font-size: 19px;
  }

  .warning-case p {
    font-size: 14px;
    line-height: 1.85;
  }

  .safe-choice {
    display: block;
    margin-top: 40px;
    border-radius: 11px;
  }

  .safe-choice__heading {
    padding: 27px 19px 24px;
  }

  .safe-choice__heading h3 {
    font-size: 21px;
  }

  .safe-choice__heading h3 strong {
    font-size: 24px;
  }

  .safe-choice__heading p {
    font-size: 14px;
    line-height: 1.8;
  }

  .safe-choice__list {
    padding: 9px 17px;
  }

  .safe-choice__list li {
    min-height: 0;
    padding: 59px 3px 18px;
  }

  .safe-choice__number {
    top: 16px;
    left: 1px;
  }

  .safe-choice__check {
    top: 13px;
    right: 2px;
    left: auto;
    width: 39px;
    height: 39px;
  }

  .safe-choice__list h4 {
    font-size: 16px;
    line-height: 1.55;
  }

  .safe-choice__list h4 strong {
    font-size: 18px;
  }

  .safe-choice__list p {
    font-size: 14px;
    line-height: 1.8;
  }

  .warning-promise {
    display: block;
    min-height: 0;
    margin-top: 16px;
    padding: 23px 16px 15px;
    border-radius: 10px;
    text-align: center;
  }

  .warning-promise__shield {
    width: 75px;
    height: 83px;
    margin: 0 auto 8px;
  }

  .warning-promise__shield svg {
    width: 70px;
    height: 80px;
  }

  .warning-promise__content > span {
    font-size: 11px;
  }

  .warning-promise__content h3 {
    font-size: 17px;
  }

  .warning-promise__content h3 strong {
    font-size: 20px;
  }

  .warning-promise__content ul {
    display: block;
    margin: 14px auto 0;
    width: fit-content;
    text-align: left;
  }

  .warning-promise__content li {
    margin-top: 7px;
    font-size: 13px;
  }

  .warning-promise > a {
    min-height: 61px;
    margin-top: 17px;
    font-size: 15px;
  }
}

@media (max-width: 820px) {
  .services {
    padding: 68px 13px 58px;
  }

  .services-heading {
    margin-bottom: 29px;
  }

  .services-heading__en {
    margin-bottom: 6px;
    font-size: 10px;
  }

  .services-heading__label {
    font-size: 11px;
  }

  .services-heading h2 {
    font-size: 29px;
  }

  .services-heading > p:last-child {
    margin-top: 11px;
    font-size: 14px;
    line-height: 1.85;
  }

  .one-stop-flow {
    display: block;
    min-height: 0;
    border-radius: 11px;
  }

  .one-stop-flow__intro {
    padding: 20px 18px;
    text-align: center;
  }

  .one-stop-flow__intro > span {
    font-size: 9px;
  }

  .one-stop-flow__intro strong {
    font-size: 21px;
  }

  .one-stop-flow__intro small {
    font-size: 11px;
  }

  .one-stop-flow ol {
    padding: 16px 10px;
    grid-template-columns: 1fr 1fr;
    gap: 13px 5px;
  }

  .one-stop-flow li {
    min-height: 91px;
  }

  .one-stop-flow li:not(:last-child)::after {
    display: none;
  }

  .one-stop-flow li > span {
    left: 11px;
  }

  .one-stop-flow__icon {
    width: 48px;
    height: 48px;
  }

  .one-stop-flow li > strong {
    font-size: 12px;
  }

  .service-groups {
    margin-top: 13px;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .service-group {
    border-radius: 11px;
  }

  .service-group__head {
    min-height: 120px;
    padding: 20px 18px;
  }

  .service-group__number {
    font-size: 46px;
  }

  .service-group__en {
    font-size: 9px;
  }

  .service-group__head h3 {
    font-size: 17px;
  }

  .service-group__head h3 strong {
    font-size: 20px;
  }

  .service-group__list {
    display: flex;
    padding: 4px 17px 14px;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .service-group__list::-webkit-scrollbar {
    display: none;
  }

  .service-item {
    flex: 0 0 82%;
    max-width: 330px;
    scroll-snap-align: center;
    min-height: 0;
    padding: 16px 16px 15px;
    border: 1px solid #dce7ec;
    border-radius: 10px;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .service-item:last-child {
    border-bottom: 1px solid #dce7ec;
  }

  .service-item__icon {
    width: 40px;
    height: 40px;
  }

  .service-item__icon svg {
    width: 25px;
    height: 25px;
  }

  .service-item h4 {
    font-size: 19px;
  }

  .service-item p {
    font-size: 14px;
    line-height: 1.85;
  }

  .service-item li {
    font-size: 10px;
  }

}

@media (max-width: 820px) {
  .items {
    padding: 68px 13px 58px;
  }

  .items::before {
    display: none;
  }

  .items-heading {
    margin-bottom: 29px;
  }

  .items-heading__en {
    margin-bottom: 6px;
    font-size: 10px;
  }

  .items-heading__label {
    font-size: 11px;
  }

  .items-heading h2 {
    font-size: 29px;
  }

  .items-heading > p:last-child {
    margin-top: 11px;
    font-size: 14px;
    line-height: 1.85;
  }

  .items-summary {
    display: block;
    min-height: 0;
    padding: 21px 17px;
    border-radius: 10px;
    text-align: center;
  }

  .items-summary__number {
    margin-bottom: 11px;
  }

  .items-summary__number strong {
    font-size: 56px;
  }

  .items-summary__number span {
    font-size: 12px;
    text-align: left;
  }

  .items-summary__copy {
    padding: 12px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    border-bottom: 1px solid rgba(255, 255, 255, 0.22);
    border-left: 0;
  }

  .items-summary__copy > span {
    font-size: 11px;
  }

  .items-summary__copy p {
    font-size: 16px;
  }

  .items-summary__copy strong {
    font-size: 19px;
  }

  .items-summary ul {
    width: fit-content;
    margin: 15px auto 0;
    grid-template-columns: 1fr;
    text-align: left;
  }

  .items-summary li {
    font-size: 13px;
  }

  .items-swipe-hint {
    display: block;
    margin: 14px 0 0;
    font-size: 11px;
    text-align: center;
    opacity: 0.55;
  }

  .item-category-grid {
    display: flex;
    margin: 10px -13px 0;
    padding: 0 13px 8px;
    gap: 9px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .item-category-grid::-webkit-scrollbar {
    display: none;
  }

  .item-category {
    min-height: 0;
    padding: 22px 18px 21px;
    border-radius: 10px;
    flex: 0 0 76%;
    max-width: 320px;
    scroll-snap-align: center;
  }

  .item-category__number {
    top: 13px;
    right: 15px;
    font-size: 30px;
  }

  .item-category__icon {
    width: 58px;
    height: 58px;
    margin-right: 11px;
  }

  .item-category__icon svg {
    width: 35px;
    height: 35px;
  }

  .item-category h3 {
    font-size: 20px;
  }

  .item-category > p {
    margin: 15px 0 14px;
    font-size: 14px;
    line-height: 1.85;
  }

  .item-category > ul {
    gap: 6px;
  }

  .item-category > ul li {
    padding: 8px 6px 8px 22px;
    font-size: 13px;
  }

  .item-category > ul li::before {
    left: 8px;
  }

  .item-category__note {
    margin-top: 14px;
    font-size: 12px;
  }

  .purchase-highlight {
    display: block;
    min-height: 0;
    margin-top: 17px;
    padding: 24px 17px 18px;
    border-radius: 11px;
    text-align: center;
  }

  .purchase-highlight__mark {
    width: 87px;
    height: 97px;
    margin: 0 auto 15px;
  }

  .purchase-highlight__content > span {
    font-size: 11px;
  }

  .purchase-highlight__content h3 {
    font-size: 19px;
  }

  .purchase-highlight__content h3 strong {
    font-size: 22px;
  }

  .purchase-highlight__content p {
    font-size: 14px;
    line-height: 1.8;
    text-align: left;
  }

  .purchase-highlight__formula {
    margin-top: 16px;
  }

  .purchase-highlight__formula span {
    font-size: 12px;
  }

  .purchase-highlight__formula strong {
    font-size: 17px;
  }

  .items-consult {
    display: block;
    min-height: 0;
    margin-top: 13px;
    padding: 21px 15px 15px;
    border-radius: 10px;
    text-align: center;
  }

  .items-consult__icon {
    margin: 0 auto 10px;
  }

  .items-consult__copy > span {
    font-size: 11px;
  }

  .items-consult__copy p {
    font-size: 16px;
  }

  .items-consult__copy strong {
    font-size: 19px;
  }

  .items-consult__copy small {
    font-size: 11px;
    text-align: left;
  }

  .items-consult > a {
    min-height: 61px;
    margin-top: 14px;
    font-size: 15px;
  }
}

@media (max-width: 820px) {
  .use-flow {
    padding: 68px 13px 58px;
  }

  .use-flow::before,
  .use-flow::after {
    display: none;
  }

  .use-flow-heading {
    margin-bottom: 29px;
  }

  .use-flow-heading__en {
    margin-bottom: 6px;
    font-size: 10px;
  }

  .use-flow-heading__label {
    font-size: 11px;
  }

  .use-flow-heading h2 {
    font-size: 29px;
  }

  .use-flow-heading > p:last-child {
    margin-top: 11px;
    font-size: 14px;
    line-height: 1.85;
  }

  .flow-intro {
    display: block;
    min-height: 0;
    border-radius: 11px;
  }

  .flow-intro__lead {
    min-height: 122px;
    padding: 19px 21px;
    text-align: center;
  }

  .flow-intro__lead > span {
    font-size: 9px;
  }

  .flow-intro__lead p {
    font-size: 13px;
  }

  .flow-intro__lead strong {
    font-size: 21px;
  }

  .flow-intro__lead em {
    font-size: 38px;
  }

  .flow-intro > ul {
    display: block;
    padding: 7px 18px 9px;
  }

  .flow-intro > ul li {
    min-height: 70px;
    padding: 10px 5px;
  }

  .flow-intro > ul li + li {
    border-top: 1px solid #dbe8ed;
    border-left: 0;
  }

  .flow-intro > ul svg {
    width: 32px;
    height: 32px;
  }

  .flow-intro > ul small {
    font-size: 12px;
  }

  .flow-intro > ul strong {
    font-size: 17px;
  }

  .flow-steps {
    margin-top: 25px;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    gap: 38px;
  }

  .flow-step:nth-child(1),
  .flow-step:nth-child(2),
  .flow-step:nth-child(3),
  .flow-step:nth-child(4),
  .flow-step:nth-child(5) {
    grid-column: auto;
    grid-row: auto;
  }

  .flow-step {
    min-height: 0;
    padding: 22px 18px 20px;
    border-radius: 10px;
  }

  .flow-step::after,
  .flow-step:nth-child(3)::after,
  .flow-step:nth-child(4)::after,
  .flow-step:nth-child(5)::after {
    content: "\2193";
    top: auto;
    right: calc(50% - 17px);
    bottom: -36px;
    left: auto;
    width: 34px;
    height: 34px;
    font-size: 19px;
  }

  .flow-step:nth-child(5)::after {
    display: none;
  }

  .flow-step__number {
    top: 16px;
    right: 16px;
    font-size: 34px;
  }

  .flow-step__icon {
    width: 62px;
    height: 62px;
    margin-bottom: 14px;
  }

  .flow-step__icon svg {
    width: 38px;
    height: 38px;
  }

  .flow-step__en {
    font-size: 9px;
  }

  .flow-step h3 {
    margin: 3px 0 9px;
    font-size: 20px;
  }

  .flow-step > p {
    font-size: 14px;
    line-height: 1.85;
  }

  .flow-step__point {
    position: static;
    min-height: 39px;
    margin-top: 15px;
    padding: 7px 10px;
    font-size: 13px;
  }

  .flow-assurance {
    display: block;
    min-height: 0;
    margin-top: 28px;
    border-radius: 11px;
  }

  .flow-assurance__head {
    padding: 23px 18px 21px;
  }

  .flow-assurance__head > span {
    font-size: 11px;
  }

  .flow-assurance__head h3 {
    margin: 9px 0;
    font-size: 19px;
  }

  .flow-assurance__head h3 strong {
    font-size: 22px;
  }

  .flow-assurance__head p {
    font-size: 14px;
    line-height: 1.85;
  }

  .flow-assurance__route {
    min-height: 165px;
    padding: 22px 9px;
    gap: 3px;
  }

  .flow-assurance__route > span {
    width: 92px;
  }

  .flow-assurance__route svg {
    width: 50px;
    height: 50px;
    margin-bottom: 8px;
  }

  .flow-assurance__route b {
    font-size: 12px;
  }

  .flow-assurance__route i {
    margin-top: -23px;
    font-size: 16px;
  }

}

@media (max-width: 820px) {
  .faq {
    padding: 68px 13px 58px;
  }

  .faq::before {
    display: none;
  }

  .faq-heading {
    margin-bottom: 29px;
  }

  .faq-heading__en {
    margin-bottom: 6px;
    font-size: 9px;
    letter-spacing: 0.14em;
  }

  .faq-heading__label {
    font-size: 11px;
  }

  .faq-heading h2 {
    font-size: 29px;
  }

  .faq-heading > p:last-child {
    margin-top: 11px;
    font-size: 14px;
    line-height: 1.85;
  }

  .faq-index {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .faq-index > a {
    min-height: 86px;
    padding: 14px 53px 14px 15px;
    border-radius: 9px;
    grid-template-columns: 52px 1fr;
    gap: 11px;
  }

  .faq-index__icon {
    width: 52px;
    height: 52px;
  }

  .faq-index__icon svg {
    width: 33px;
    height: 33px;
  }

  .faq-index > a > span:nth-child(2) small {
    font-size: 8px;
  }

  .faq-index > a > span:nth-child(2) strong {
    font-size: 18px;
  }

  .faq-groups {
    margin-top: 18px;
  }

  .faq-group {
    display: block;
    padding: 8px;
    border-radius: 11px;
    scroll-margin-top: 82px;
  }

  .faq-group + .faq-group {
    margin-top: 12px;
  }

  .faq-group__heading {
    min-height: 150px;
    padding: 22px 20px;
    border-radius: 8px;
    justify-content: center;
  }

  .faq-group__number {
    top: 13px;
    right: 14px;
    font-size: 48px;
  }

  .faq-group__icon {
    width: 58px;
    height: 58px;
    margin-bottom: 10px;
  }

  .faq-group__icon svg {
    width: 36px;
    height: 36px;
  }

  .faq-group__heading > span:not(.faq-group__number) {
    font-size: 9px;
  }

  .faq-group__heading h3 {
    margin: 3px 0 3px;
    font-size: 21px;
  }

  .faq-group__heading p {
    font-size: 12px;
  }

  .faq-group__items {
    margin-top: 8px;
    gap: 7px;
  }

  .faq-item {
    border-radius: 7px;
  }

  .faq-item summary {
    min-height: 78px;
    padding: 13px 48px 13px 12px;
    grid-template-columns: 36px 1fr;
    gap: 10px;
  }

  .faq-item__q {
    width: 36px;
    height: 36px;
    font-size: 19px;
  }

  .faq-item__question {
    font-size: 16px;
    line-height: 1.65;
  }

  .faq-item__toggle {
    right: 10px;
    width: 30px;
    height: 30px;
  }

  .faq-item__toggle::before,
  .faq-item__toggle::after {
    top: 14px;
    left: 8px;
  }

  .faq-item__answer {
    margin: 0 12px;
    padding: 15px 0 17px;
    grid-template-columns: 36px 1fr;
    gap: 10px;
  }

  .faq-item__answer > span {
    width: 36px;
    height: 36px;
    font-size: 19px;
  }

  .faq-item__answer p {
    margin-top: 1px;
    font-size: 14px;
    line-height: 1.9;
  }

}

@media (max-width: 820px) {
  .company-area {
    padding: 68px 13px 58px;
  }

  .company-area::before {
    display: none;
  }

  .company-heading {
    margin-bottom: 29px;
  }

  .company-heading__en {
    margin-bottom: 6px;
    font-size: 9px;
    letter-spacing: 0.14em;
  }

  .company-heading__label {
    font-size: 11px;
  }

  .company-heading h2 {
    font-size: 29px;
  }

  .company-heading > p:last-child {
    margin-top: 11px;
    font-size: 14px;
    line-height: 1.85;
  }

  .company-profile {
    display: block;
    border-radius: 11px;
  }

  .company-profile__details {
    padding: 23px 17px 20px;
  }

  .company-profile__title {
    margin-bottom: 17px;
  }

  .company-profile__title > span {
    font-size: 9px;
  }

  .company-profile__title h3 {
    font-size: 22px;
  }

  .company-profile__title p {
    font-size: 14px;
    line-height: 1.75;
  }

  .company-profile dl > div {
    min-height: 0;
    padding: 13px 2px;
    grid-template-columns: 94px 1fr;
    gap: 9px;
    align-items: start;
  }

  .company-profile dt {
    font-size: 13px;
  }

  .company-profile dd {
    font-size: 14px;
    line-height: 1.75;
  }

  .company-profile dd strong {
    font-size: 16px;
  }

  .company-profile dd a {
    font-size: 16px;
  }

  .company-map {
    padding: 13px;
  }

  .company-map__head {
    min-height: 65px;
    margin-bottom: 9px;
  }

  .company-map__head p strong {
    font-size: 16px;
  }

  .company-map iframe {
    min-height: 300px;
  }

  .company-map > a {
    min-height: 54px;
    font-size: 14px;
  }

  .company-permits {
    display: block;
    margin-top: 13px;
    border-radius: 11px;
  }

  .company-permits__heading {
    min-height: 125px;
    padding: 20px 18px;
  }

  .company-permits__heading p > span {
    font-size: 8px;
  }

  .company-permits__heading p > strong {
    font-size: 20px;
  }

  .company-permits__heading p > small {
    font-size: 11px;
  }

  .company-permit-card {
    min-height: 88px;
    padding: 15px 16px;
    border-top: 1px solid #dce8ed;
    border-left: 0;
    grid-template-columns: 53px 1fr;
    gap: 11px;
  }

  .company-permit-card__icon {
    width: 53px;
    height: 53px;
  }

  .company-permit-card__icon svg {
    width: 33px;
    height: 33px;
  }

  .company-permit-card small {
    font-size: 11px;
  }

  .company-permit-card strong {
    font-size: 14px;
  }

  .company-permit-card p > span {
    font-size: 11px;
  }
}

/* CTA interaction: 電話を主要導線として統一 */
:is(.phone-cta, .form-cta, .line-sub-cta, .company-map > a) {
  position: relative; isolation: isolate; overflow: hidden;
  border: 2px solid rgba(255,255,255,.74);
  box-shadow: 0 4px 0 rgba(4,57,91,.2), 0 10px 22px rgba(4,57,91,.16);
  cursor: pointer; transition: filter .18s ease, transform .18s ease;
}
.phone-cta { animation: cta-button-breathe 2.2s ease-in-out infinite; }
.phone-cta::before {
  content: ""; position: absolute; top: -35%; bottom: -35%; left: 0; width: 34%;
  pointer-events: none; opacity: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.58), transparent);
  animation: cta-shine 4.6s ease-in-out infinite;
}
:is(.phone-cta, .form-cta, .line-sub-cta):focus-visible { outline: 3px solid #0068b7; outline-offset: 4px; animation: none; }
:is(.phone-cta, .form-cta, .line-sub-cta):active { transform: translateY(2px); animation: none; }
@media (hover: hover) {
  :is(.phone-cta, .form-cta, .line-sub-cta):hover { filter: brightness(1.08); transform: translateY(-2px); animation: none; }
}

@keyframes cta-button-breathe {
  0%,
  100% {
    filter: brightness(1);
    transform: translateY(0) scale(1);
  }

  50% {
    filter: brightness(1.055) saturate(1.04);
    transform: translateY(-4px) scale(1.018);
  }
}

@keyframes cta-arrow-nudge {
  0%,
  100% {
    transform: translateX(0);
  }

  50% {
    transform: translateX(5px);
  }
}

@keyframes cta-shine {
  0%,
  64%,
  100% {
    opacity: 0;
    transform: translateX(-190%) skewX(-19deg);
  }

  70% {
    opacity: 0.58;
  }

  88% {
    opacity: 0.58;
    transform: translateX(430%) skewX(-19deg);
  }

  89% {
    opacity: 0;
    transform: translateX(430%) skewX(-19deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 360px) {
  .company-profile dl > div {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 6px;
  }

  .company-profile dd strong,
  .company-profile dd a {
    font-size: 14px;
    letter-spacing: -0.02em;
  }
}

@media (max-width: 820px) {
}

@media (max-width: 380px) {
}

@media (max-width: 360px) {
  .fixed-contact a.fixed-contact__estimate > span {
    max-width: 82px;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: 0;
  }

  .fixed-contact__narrow-break {
    display: block;
  }
}

/* --------------------------------------------------------------------------
   PROBLEMS / 動きのある吹き出しシーン
   -------------------------------------------------------------------------- */
.problems {
  padding: 86px 20px 66px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(237, 248, 254, 0.96)),
    radial-gradient(circle at 1px 1px, rgba(0, 104, 183, 0.17) 1px, transparent 1.4px);
  background-size: auto, 25px 25px;
}

.problems__inner {
  width: min(100%, 1240px);
}

.problems .section-heading {
  position: relative;
  z-index: 6;
}

.problems .section-heading > p {
  font-size: 17px;
  line-height: 1.9;
}

.problems-scene {
  position: relative;
  width: min(100%, 1240px);
  height: 520px;
  margin: 42px auto 0;
  overflow: hidden;
  border: 1px solid rgba(92, 170, 211, 0.38);
  border-radius: 38px;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 14%, rgba(255, 255, 255, 0.98) 0 12%, transparent 36%),
    radial-gradient(circle at 7% 18%, rgba(255, 255, 255, 0.92) 0 8%, transparent 31%),
    radial-gradient(circle at 92% 32%, rgba(255, 227, 190, 0.55) 0 5%, transparent 25%),
    linear-gradient(180deg, #edf9ff 0%, #dff3fd 54%, #cceaf8 100%);
  box-shadow:
    0 24px 60px rgba(23, 77, 109, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.problems-scene::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -3;
  opacity: 0.36;
  background-image:
    linear-gradient(30deg, transparent 49.4%, rgba(0, 104, 183, 0.13) 50%, transparent 50.6%),
    linear-gradient(-30deg, transparent 49.4%, rgba(0, 104, 183, 0.1) 50%, transparent 50.6%);
  background-position: center bottom;
  background-size: 92px 52px;
  -webkit-mask-image: linear-gradient(to top, #000, transparent 48%);
  mask-image: linear-gradient(to top, #000, transparent 48%);
}

.problems-scene::after {
  content: "";
  position: absolute;
  right: -8%;
  bottom: -34%;
  left: -8%;
  z-index: -2;
  height: 58%;
  border-radius: 50% 50% 0 0;
  background:
    radial-gradient(circle at 50% 12%, rgba(255, 255, 255, 0.82), rgba(185, 226, 246, 0.78) 62%, rgba(142, 207, 237, 0.4));
}

.problem-bubbles {
  position: absolute;
  inset: 0;
  z-index: 4;
  margin: 0;
  padding: 0;
}

.problem-bubble {
  --bubble-color: #0876ba;
  --bubble-shadow: rgba(0, 104, 183, 0.22);
  --enter-x: -34px;
  --enter-delay: 0ms;
  --float-duration: 6.8s;
  --float-delay: -1.4s;
  --text-delay: 0.8s;
  --text-shift: -7px;
  --text-rotate: -1.8deg;
  --text-pop-shadow: rgba(0, 104, 183, 0.18);
  --tilt: -1.6deg;
  position: absolute;
  width: clamp(275px, 27vw, 330px);
  z-index: 4;
  opacity: 1;
  cursor: default;
  transform: rotate(var(--tilt));
  transform-origin: 50% 70%;
  transition:
    opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1) var(--enter-delay),
    transform 0.82s cubic-bezier(0.22, 1, 0.36, 1) var(--enter-delay);
}

.problem-bubble::before {
  content: "";
  position: absolute;
  inset: 8px -8px -8px 8px;
  z-index: -1;
  border-radius: 34px 27px 35px 24px;
  opacity: 0.68;
  background:
    repeating-linear-gradient(
      135deg,
      var(--bubble-shadow) 0 2px,
      transparent 2px 6px
    );
}

.problem-bubble__float {
  position: relative;
  display: flex;
  min-height: 106px;
  padding: 18px 26px 17px;
  overflow: visible;
  border: 3px solid var(--bubble-color);
  border-radius: 34px 27px 35px 24px;
  flex-direction: column;
  justify-content: center;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.98);
  box-shadow:
    0 13px 30px rgba(23, 77, 109, 0.1),
    inset 0 0 0 4px rgba(255, 255, 255, 0.62);
}

.problem-bubble__float::after {
  content: "";
  position: absolute;
  right: 47px;
  bottom: -14px;
  width: 25px;
  height: 25px;
  border-right: 3px solid var(--bubble-color);
  border-bottom: 3px solid var(--bubble-color);
  background: #fff;
  transform: rotate(45deg);
}

.problem-bubble:nth-child(even) .problem-bubble__float::after {
  right: auto;
  left: 47px;
}

.problem-bubble__mark {
  position: absolute;
  top: -16px;
  left: 24px;
  display: grid;
  min-width: 39px;
  height: 39px;
  padding: 0 9px;
  border: 3px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: var(--bubble-color);
  box-shadow: 0 5px 12px rgba(14, 72, 106, 0.18);
  place-items: center;
  font-family: Arial, sans-serif;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
}

.problem-bubble h3 {
  margin: 0;
  color: var(--bubble-color);
  font-size: clamp(21px, 1.8vw, 25px);
  font-weight: 900;
  line-height: 1.38;
  letter-spacing: 0.01em;
  text-align: center;
  transform-origin: 50% 58%;
  will-change: transform, filter;
}

.problem-bubble p {
  margin: 9px 0 0;
  color: #526f80;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.65;
}

.problem-bubble--01 {
  top: 27px;
  left: 4%;
}

.problem-bubble--02 {
  --enter-x: 34px;
  --enter-delay: 90ms;
  --float-duration: 7.4s;
  --float-delay: -3.2s;
  --text-delay: 1.05s;
  --text-shift: 7px;
  --text-rotate: 1.8deg;
  --tilt: 1.8deg;
  top: 22px;
  right: 4%;
}

.problem-bubble--03 {
  --enter-delay: 180ms;
  --float-duration: 7.1s;
  --float-delay: -4.6s;
  --text-delay: 1.3s;
  --tilt: 1.3deg;
  top: 190px;
  left: 1%;
}

.problem-bubble--04 {
  --enter-x: 34px;
  --enter-delay: 270ms;
  --float-duration: 6.5s;
  --float-delay: -2.1s;
  --text-delay: 1.55s;
  --text-shift: 7px;
  --text-rotate: 1.8deg;
  --tilt: -1.4deg;
  top: 186px;
  right: 1%;
}

.problem-bubble--05 {
  --enter-delay: 360ms;
  --float-duration: 7.7s;
  --float-delay: -5.1s;
  --text-delay: 1.8s;
  --tilt: -1deg;
  top: 351px;
  left: 4%;
}

.problem-bubble--06 {
  --enter-x: 34px;
  --enter-delay: 450ms;
  --float-duration: 7s;
  --float-delay: -3.8s;
  --text-delay: 2.05s;
  --text-shift: 7px;
  --text-rotate: 1.8deg;
  --tilt: 1.4deg;
  top: 347px;
  right: 4%;
}

.problem-bubble--orange {
  --bubble-color: #e57813;
  --bubble-shadow: rgba(242, 138, 33, 0.27);
  --text-pop-shadow: rgba(229, 120, 19, 0.2);
}

.problems-scene__person {
  position: absolute;
  bottom: -22px;
  left: 50%;
  z-index: 2;
  width: min(23%, 285px);
  margin: 0;
  opacity: 1;
  transform: translateX(-50%);
  transform-origin: 50% 100%;
  transition:
    opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1) 120ms,
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 120ms;
}

.problems-scene__person-halo {
  position: absolute;
  top: 18%;
  left: 50%;
  z-index: -1;
  width: 138%;
  aspect-ratio: 1;
  border: 1px solid rgba(0, 104, 183, 0.18);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.94) 0 54%, rgba(255, 255, 255, 0.18) 55% 65%, transparent 66%);
  transform: translateX(-50%);
}

.problems-scene__person img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 22px 25px rgba(5, 64, 101, 0.2));
}

.problems-scene__deco {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}

.problems-scene__deco--question {
  top: -58px;
  left: 50%;
  color: rgba(0, 104, 183, 0.075);
  font-family: Georgia, serif;
  font-size: 210px;
  font-weight: 800;
  line-height: 1;
  transform: translateX(-50%) rotate(8deg);
}

.problems-scene__deco--lines {
  top: 64px;
  left: calc(50% + 105px);
  display: flex;
  gap: 9px;
  transform: rotate(-24deg);
}

.problems-scene__deco--lines span {
  display: block;
  width: 4px;
  height: 28px;
  border-radius: 99px;
  background: rgba(242, 138, 33, 0.68);
}

.problems-scene.is-motion-ready .problem-bubble {
  opacity: 0;
  transform:
    translate3d(var(--enter-x), 24px, 0)
    scale(0.92)
    rotate(var(--tilt));
}

.problems-scene.is-motion-ready .problems-scene__person {
  opacity: 0;
  transform: translate3d(-50%, 42px, 0) scale(0.96);
}

.problems-scene.is-motion-ready.is-visible .problem-bubble {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1) rotate(var(--tilt));
}

.problems-scene.is-motion-ready.is-visible .problems-scene__person {
  opacity: 1;
  transform: translate3d(-50%, 0, 0) scale(1);
}

.problems-scene.is-visible .problem-bubble__float {
  animation: problems-bubble-float var(--float-duration) ease-in-out var(--float-delay) infinite;
}

.problems-scene.is-visible .problem-bubble h3 {
  animation: problems-text-punch 5.2s cubic-bezier(0.22, 1, 0.36, 1) var(--text-delay) infinite both;
}

.problems-scene.is-visible .problems-scene__person img {
  animation: problems-person-float 7.4s ease-in-out -2.6s infinite;
}

@keyframes problems-bubble-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }

  50% {
    transform: translate3d(0, -6px, 0);
  }
}

@keyframes problems-person-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }

  50% {
    transform: translate3d(0, -4px, 0);
  }
}

@keyframes problems-text-punch {
  0%,
  28%,
  100% {
    letter-spacing: 0.01em;
    filter: drop-shadow(0 0 0 transparent);
    transform: translate3d(0, 0, 0) scale(1) rotate(0);
  }

  8% {
    letter-spacing: 0.035em;
    filter: drop-shadow(0 8px 0 var(--text-pop-shadow));
    transform:
      translate3d(var(--text-shift), -10px, 0)
      scale(1.17)
      rotate(var(--text-rotate));
  }

  14% {
    letter-spacing: 0;
    filter: drop-shadow(0 2px 0 var(--text-pop-shadow));
    transform: translate3d(0, 3px, 0) scale(0.93) rotate(0.6deg);
  }

  20% {
    letter-spacing: 0.018em;
    filter: drop-shadow(0 4px 0 var(--text-pop-shadow));
    transform: translate3d(0, -4px, 0) scale(1.07) rotate(-0.4deg);
  }
}

@media (min-width: 821px) and (max-width: 1060px) {
  .problems-scene {
    height: 500px;
  }

  .problem-bubble {
    width: 31%;
  }

  .problem-bubble__float {
    min-height: 98px;
    padding: 16px 20px 15px;
  }

  .problem-bubble h3 {
    font-size: 20px;
  }

  .problem-bubble--03,
  .problem-bubble--04 {
    top: 181px;
  }

  .problem-bubble--05,
  .problem-bubble--06 {
    top: 338px;
  }

  .problems-scene__person {
    width: 26%;
  }
}

@media (max-width: 820px) {
  .problems {
    padding: 58px 8px 42px;
  }

  .problems .section-heading > p {
    display: none;
  }

  .problems-scene {
    width: calc(100vw - 14px);
    height: 520px;
    margin-top: 24px;
    margin-left: 50%;
    border-radius: 28px;
    transform: translateX(-50%);
  }

  .problems-scene::after {
    right: -40%;
    bottom: -8%;
    left: 18%;
    height: 52%;
  }

  .problem-bubble {
    width: 64%;
  }

  .problem-bubble::before {
    inset: 6px -6px -6px 6px;
  }

  .problem-bubble__float {
    min-height: 74px;
    padding: 13px 16px 12px;
    border-width: 2px;
    border-radius: 27px 22px 29px 19px;
  }

  .problem-bubble__float::after {
    bottom: -11px;
    width: 20px;
    height: 20px;
    border-width: 0 2px 2px 0;
  }

  .problem-bubble:nth-child(even) .problem-bubble__float::after {
    border-width: 0 2px 2px 0;
  }

  .problem-bubble__mark {
    top: -11px;
    left: 16px;
    min-width: 31px;
    height: 31px;
    padding: 0 7px;
    border-width: 2px;
    font-size: 14px;
  }

  .problem-bubble h3 {
    font-size: clamp(18px, 4.9vw, 19px);
    line-height: 1.34;
  }

  .problem-bubble--01 {
    top: 16px;
    left: 2%;
  }

  .problem-bubble--02 {
    top: 92px;
    right: 2%;
    width: 66%;
  }

  .problem-bubble--03 {
    top: 168px;
    left: 0;
    width: 62%;
  }

  .problem-bubble--04 {
    top: 244px;
    right: 4%;
    width: 50%;
  }

  .problem-bubble--05 {
    top: 318px;
    left: 2%;
    width: 65%;
  }

  .problem-bubble--06 {
    top: 396px;
    right: auto;
    left: 1%;
    width: 56%;
  }

  .problems-scene__person {
    right: -12px;
    bottom: -54px;
    left: auto;
    width: min(36vw, 140px);
    transform: none;
  }

  .problems-scene.is-motion-ready .problems-scene__person {
    transform: translate3d(0, 36px, 0) scale(0.96);
  }

  .problems-scene.is-motion-ready.is-visible .problems-scene__person {
    transform: translate3d(0, 0, 0) scale(1);
  }

  .problems-scene__person-halo {
    top: 11%;
    width: 142%;
  }

  .problems-scene__deco--question {
    top: 260px;
    left: 14%;
    font-size: 105px;
  }

  .problems-scene__deco--lines {
    top: 335px;
    left: auto;
    right: 15px;
  }
}

@media (max-width: 380px) {
  .problems {
    padding-right: 9px;
    padding-left: 9px;
  }

  .problems-scene {
    height: 480px;
  }

  .problem-bubble {
    width: 70%;
  }

  .problem-bubble__float {
    min-height: 66px;
    padding: 11px 13px 10px;
  }

  .problem-bubble h3 {
    font-size: 17px;
    line-height: 1.32;
  }

  .problem-bubble--01 {
    top: 12px;
    left: 1%;
  }

  .problem-bubble--02 {
    top: 82px;
    right: 1%;
    width: 74%;
  }

  .problem-bubble--03 {
    top: 152px;
    left: 0;
    width: 72%;
  }

  .problem-bubble--04 {
    top: 222px;
    right: 2%;
    width: 58%;
  }

  .problem-bubble--05 {
    top: 290px;
    left: 1%;
    width: 75%;
  }

  .problem-bubble--06 {
    top: 360px;
    left: 1%;
    width: 58%;
  }

  .problems-scene__person {
    right: -18px;
    bottom: -50px;
    width: 128px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .problems-scene .problem-bubble,
  .problems-scene .problem-bubble__float,
  .problems-scene .problem-bubble h3,
  .problems-scene .problems-scene__person,
  .problems-scene .problems-scene__person img {
    opacity: 1;
    animation: none !important;
    transition: none !important;
  }
}/* --------------------------------------------------------------------------
   PHOTO ESTIMATE / CTAを案内する人物切り抜き
   -------------------------------------------------------------------------- */

@media (max-width: 820px) {
}

@media (max-width: 360px) {
}

/* --------------------------------------------------------------------------
   CTA GUIDE / 横長CTAに共通する案内人物
   -------------------------------------------------------------------------- */
.cta-staff-mini {
  position: relative;
  z-index: 2;
  margin: 0;
  overflow: hidden;
  pointer-events: none;
  align-self: end;
  justify-self: center;
}

.cta-staff-mini__halo {
  position: absolute;
  top: 10px;
  left: 50%;
  width: 90%;
  aspect-ratio: 1;
  border: 1px solid rgba(244, 161, 60, 0.38);
  border-radius: 50%;
  background:
    radial-gradient(circle at 42% 36%, #fff 0 27%, #fff5e6 58%, rgba(255, 222, 175, 0.38) 72%, transparent 73%);
  box-shadow: 0 8px 18px rgba(11, 62, 92, 0.13);
  transform: translateX(-50%);
}

.cta-staff-mini img {
  position: absolute;
  bottom: -20px;
  left: 50%;
  z-index: 1;
  display: block;
  width: auto;
  filter: drop-shadow(0 7px 8px rgba(10, 45, 66, 0.24));
  transform: translateX(-50%);
}

.cta-staff-mini--warning {
  width: 94px;
  height: 116px;
}

.cta-staff-mini--warning img {
  bottom: -22px;
  height: 138px;
}

.cta-staff-mini--items {
  width: 84px;
  height: 100px;
}

.cta-staff-mini--items img {
  height: 120px;
}

.warning-promise {
  grid-template-columns: 100px minmax(0, 1fr) 94px 270px;
  gap: 16px;
}

.items-consult {
  grid-template-columns: 68px minmax(0, 1fr) 84px 285px;
  gap: 14px;
}

@media (max-width: 820px) {
  .warning-promise,
  .items-consult {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 72px;
    column-gap: 8px;
  }

  .warning-promise__shield,
  .items-consult__icon {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .warning-promise__content,
  .items-consult__copy {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .warning-promise > .cta-staff-mini,
  .items-consult > .cta-staff-mini {
    width: 72px;
    height: 80px;
    margin-top: 17px;
    grid-column: 2;
    grid-row: 3;
    justify-self: end;
  }

  .warning-promise > .cta-staff-mini img,
  .items-consult > .cta-staff-mini img {
    bottom: -22px;
    height: 103px;
  }

  .warning-promise > a,
  .items-consult > a {
    width: 100%;
    grid-column: 1;
    grid-row: 3;
    align-self: end;
  }
}

@media (max-width: 360px) {
  .warning-promise,
  .items-consult {
    grid-template-columns: minmax(0, 1fr) 58px;
    column-gap: 6px;
  }

  .warning-promise > .cta-staff-mini,
  .items-consult > .cta-staff-mini {
    width: 58px;
    height: 68px;
  }

  .warning-promise > .cta-staff-mini img,
  .items-consult > .cta-staff-mini img {
    bottom: -20px;
    height: 89px;
  }

  .warning-promise > a,
  .items-consult > a {
    font-size: 13.5px;
  }

  .warning-promise > a b,
  .items-consult > a b {
    width: 34px;
    margin-right: 6px;
  }
}

/* --------------------------------------------------------------------------
   HERO / 広幅PCでFV全体を使い、下部の余白を抑える
   -------------------------------------------------------------------------- */
.hero h1 {
  font-feature-settings: "palt" 1;
  font-kerning: normal;
}

.hero h1 strong {
  display: block;
  width: fit-content;
  max-width: 100%;
}

@media (min-width: 1181px) {
  .hero {
    height: clamp(680px, calc(100svh - 124px), 790px);
    min-height: 680px;
  }

  .hero__visual,
  .hero__shade {
    inset: 0 0 104px;
  }

  .hero__shade {
    background:
      linear-gradient(
        90deg,
        rgba(252, 250, 244, 0.99) 0%,
        rgba(252, 250, 244, 0.97) 28%,
        rgba(252, 250, 244, 0.83) 38%,
        rgba(252, 250, 244, 0.4) 48%,
        rgba(252, 250, 244, 0.05) 59%,
        transparent 66%
      ),
      linear-gradient(0deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.06));
  }

  .hero__inner {
    display: grid;
    width: min(calc(100% - 96px), 1600px);
    height: calc(100% - 104px);
    min-height: 0;
    padding: 28px 0 24px;
    grid-template-columns: minmax(650px, 46%) minmax(0, 54%);
    align-items: center;
  }

  .hero__content {
    width: 100%;
    max-width: 720px;
  }

  .hero__eyebrow {
    margin: 14px 0 3px;
  }

  .hero h1 {
    font-size: clamp(52px, 4vw, 68px);
    letter-spacing: -0.045em;
    line-height: 1.15;
  }

  .hero h1 strong {
    margin-top: 0.06em;
  }

  .hero__lead {
    margin: 11px 0 13px;
    line-height: 1.75;
  }

  .benefit-list {
    margin-bottom: 14px;
  }

}
/* Privacy policy page */
.privacy-page {
  padding-bottom: 0;
  background: #fbfdff;
}

.privacy-header {
  border-bottom: 1px solid #e1ecf4;
  background: #fff;
}

.privacy-header__inner {
  display: flex;
  width: min(calc(100% - 40px), var(--max));
  min-height: 84px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.privacy-header__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  border: 1px solid #cfe0ec;
  border-radius: 999px;
  color: var(--blue-deep);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.privacy-header__back svg {
  width: 14px;
  height: 14px;
}

.privacy-header__back:hover,
.privacy-header__back:focus-visible {
  border-color: var(--blue);
  background: var(--blue-pale);
}

.privacy-hero {
  padding: 46px 20px 42px;
  color: #fff;
  background: linear-gradient(120deg, var(--blue-deep), var(--blue));
}

.privacy-hero__inner {
  width: min(100%, 800px);
  margin: 0 auto;
}

.privacy-hero__en {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  opacity: 0.8;
}

.privacy-hero h1 {
  margin: 0;
  font-size: 30px;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.privacy-main {
  padding-bottom: 80px;
}

.privacy-body {
  width: min(calc(100% - 40px), 800px);
  margin: 0 auto;
  font-size: 15px;
  line-height: 2;
}

.privacy-lead {
  margin: 40px 0 0;
}

.privacy-article {
  margin-top: 44px;
}

.privacy-article h2 {
  margin: 0 0 14px;
  padding: 2px 0 2px 14px;
  border-left: 4px solid var(--orange);
  color: var(--blue-ink);
  font-size: 19px;
  line-height: 1.5;
}

.privacy-article p {
  margin: 0 0 12px;
}

.privacy-article > ol {
  margin: 0;
  padding-left: 26px;
}

.privacy-article > ol > li {
  margin-bottom: 10px;
}

.privacy-article ol ol {
  margin: 8px 0 0;
  padding-left: 4px;
  list-style: none;
  counter-reset: privacy-sub;
}

.privacy-article ol ol > li {
  position: relative;
  margin-bottom: 8px;
  padding-left: 32px;
  counter-increment: privacy-sub;
}

.privacy-article ol ol > li::before {
  position: absolute;
  left: 0;
  content: "（" counter(privacy-sub) "）";
}

.privacy-contact {
  margin: 20px 0 0;
  border: 1px solid #dbe8f2;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}

.privacy-contact > div {
  display: grid;
  grid-template-columns: 130px 1fr;
}

.privacy-contact > div + div {
  border-top: 1px solid #e7f0f7;
}

.privacy-contact dt {
  padding: 13px 16px;
  background: var(--blue-pale);
  color: var(--blue-deep);
  font-size: 13px;
  font-weight: 700;
}

.privacy-contact dd {
  margin: 0;
  padding: 13px 18px;
  font-size: 14px;
}

.privacy-contact dd a {
  color: var(--blue);
  font-weight: 700;
}

@media (max-width: 760px) {
  .privacy-header__inner {
    min-height: 72px;
  }

  .privacy-header__back {
    padding: 8px 12px;
    font-size: 12px;
  }

  .privacy-hero {
    padding: 34px 20px 30px;
  }

  .privacy-hero h1 {
    font-size: 24px;
  }

  .privacy-body {
    font-size: 14px;
  }

  .privacy-article h2 {
    font-size: 17px;
  }

  .privacy-contact > div {
    grid-template-columns: 1fr;
  }

  .privacy-contact dt {
    padding: 9px 16px 8px;
  }

  .privacy-contact dd {
    padding: 10px 16px 12px;
  }
}

/* Fine-print pass: ※注記を全体的に小さく・控えめにする(常に末尾で最優先) */
.campaign-notes,
.campaign-ticket__any,
.comparison-note,
.pricing-packs__notes p,
.cases-voices__note {
  font-size: 10px;
  line-height: 1.7;
  opacity: 0.78;
}

.reasons-campaign__note {
  font-size: 8.5px;
  opacity: 0.85;
}

.representative-card__photo-note,
.purchase-visual > small,
.items-consult__copy small {
  font-size: 9px;
  opacity: 0.8;
}

@media (max-width: 820px) {
  .campaign-notes,
  .campaign-ticket__any,
  .comparison-note,
  .pricing-packs__notes p,
  .cases-voices__note,
  .legal-footer__note,
  .reasons-campaign__note,
  .representative-card__photo-note,
  .purchase-visual > small,
  .items-consult__copy small {
    font-size: 8px;
  }
}

/* 作業事例: PC=featured-case構成 / スマホ=BEFORE・AFTER+スライド+スタッフコメント構成 */
.before-after--standalone,
.staff-comment--standalone,
.case-list-heading__en-sp {
  display: none;
}

@media (max-width: 820px) {
  .featured-case,
  .case-list-heading__en-pc {
    display: none;
  }

  .case-list-heading__en-sp {
    display: inline;
  }

  .before-after--standalone {
    display: grid;
    margin-top: 16px;
    border-radius: 14px;
  }

  .staff-comment--standalone {
    display: flex;
    margin: 18px 0 0;
  }
}

/* 安心セクション(スマホ): 紺パネルの盾・リード・リストを外し、写真のみ表示 */
@media (max-width: 820px) {
  .trust-assurance__mark,
  .trust-assurance__lead,
  .trust-assurance__divider,
  .trust-assurance ul,
  .trust-assurance__name {
    display: none;
  }

  .trust-assurance {
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
  }

  .trust-assurance__photo {
    margin-top: 0;
  }
}

/* 見積もり日時欄(スマホ): 日付inputのはみ出し防止 */
@media (max-width: 820px) {
  .preferred-dates,
  .preferred-date {
    min-width: 0;
  }

  .preferred-date {
    grid-template-columns: 54px minmax(0, 1fr);
  }

  .preferred-date input,
  .preferred-date select {
    min-width: 0;
    width: 100%;
  }

  .preferred-date input[type="date"] {
    padding-right: 8px;
    padding-left: 10px;
  }
}

/* Phone-first CTA layout. Scoped outside the unchanged hero. */
:root { --phone-background: linear-gradient(135deg, #ed741e, #d84716); }
/* clip avoids creating a scroll container that would disable the sticky header. */
body { overflow-x: clip; padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
[id] { scroll-margin-top: 104px; }
.header-contact__phone { display: block; }
.header-contact__phone a { font-size: 35px; white-space: nowrap; }
.header-contact__phone a:hover { color: #d84716; }
.header-contact__phone svg { width: 26px; }
a.phone-cta {
  display: flex; min-width: 0; min-height: 104px; padding: 15px 12px;
  align-items: center; justify-content: center; gap: 10px;
  border-radius: 12px; color: #fff; background: var(--phone-background);
  text-align: center; line-height: 1.4;
}
a.phone-cta > .phone-cta__icon { width: 26px; height: 26px; margin: 0; flex: 0 0 auto; fill: currentColor; stroke: none; }
.phone-cta .phone-cta__text { display: block; min-width: 0; }
.phone-cta .phone-cta__label { display: block; font-size: 13px; font-weight: 700; letter-spacing: 0; }
.phone-cta .phone-cta__number { display: block; font: 800 30px/1.25 Arial, sans-serif; letter-spacing: -.025em; white-space: nowrap; }
a.phone-cta small { display: block; margin: 3px 0 0; font-size: 11px; font-weight: 600; color: #fff; letter-spacing: .02em; }
a.form-cta { display: flex; min-width: 0; padding: 12px 10px; gap: 7px; border-radius: 12px; background: #183f5b; color: #fff; align-items: center; justify-content: center; text-align: center; font-size: 14px; font-weight: 700; }
a.form-cta svg { width: 23px; height: 26px; flex-shrink: 0; margin: 0; }
a.form-cta small { display: block; margin-top: 5px; font-size: 10px; font-weight: 500; }
.fixed-contact { height: auto; padding: 10px 20px calc(10px + env(safe-area-inset-bottom)); }
.fixed-contact__inner { grid-template-columns: minmax(220px, 1fr) minmax(330px, 1.5fr) minmax(200px, 1fr); gap: 14px; }
.fixed-contact a { min-height: 82px; }
.fixed-contact .phone-cta__number { font-size: 32px; }
.fixed-contact__phone .phone-cta__icon { animation: phone-ring 5s ease-in-out infinite; }
.campaign-ticket__action > a.phone-cta { background: var(--phone-background); color: #fff; border: 2px solid #ffffffbd; box-shadow: 0 4px 0 #04395b33, 0 10px 22px #04395b29; min-height: 110px; }
.campaign-ticket__secondary { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; }
.campaign-ticket__secondary a { min-height: 60px; font-size: 12px; }
.campaign-ticket__secondary .form-cta { flex-direction: column; gap: 0; }
.campaign-ticket__secondary .form-cta svg { display: none; }
.line-sub-cta { display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #87b09e; border-radius: 10px; color: #356d55; background: #fff; font-weight: 700; }
.line-sub-cta small { font-size: 10px; font-weight: 500; }
.reasons-cta__body { grid-template-columns: minmax(210px,.8fr) minmax(0,1.6fr); gap: 24px; }
.reasons-cta__actions { grid-template-columns: minmax(0,1.8fr) minmax(0,1fr); gap: 12px; padding-left: 20px; }
.reasons-cta__copy .reasons-cta__sentence { display: inline-block; white-space: nowrap; color: var(--ink); font: inherit; letter-spacing: 0; }
.reasons-cta__copy p { font-size: 18px; }
.reasons-cta__form { flex-direction: column; }
.photo-estimate { display: grid; grid-template-columns: 220px minmax(0,1fr) 290px; gap: 30px; align-items: center; margin-top: 47px; padding: 38px 28px; border-radius: 18px; color: #fff; background: radial-gradient(ellipse at top left,#285d79,transparent 65%),#12364e; }
.photo-estimate__phone { position: relative; width: 184px; height: 350px; margin: 10px auto; padding: 10px; border: 5px solid #7b929e; border-radius: 28px; background: #102c40; box-shadow: 0 18px 35px #001b2f55; transform: rotate(-5deg); }
.photo-estimate__speaker { width: 48px; height: 4px; margin: 0 auto 14px; border-radius: 5px; background: #829aa9; }
.photo-estimate__call-screen { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; }
.photo-estimate__call-screen p { margin: 8px 0 0; font-size: 16px; font-weight: 700; }
.photo-estimate__call-screen small { display: block; margin-top: 4px; font-size: 10px; }
.photo-estimate__call-screen > strong { font: 700 18px Arial,sans-serif; white-space: nowrap; }
.photo-estimate__call-screen > span { font-size: 10px; color: #c6d5df; }
.photo-estimate__call-controls { display: flex; gap: 22px; margin-top: 62px; }
.photo-estimate__call-controls span { display: flex; align-items: center; flex-direction: column; gap: 5px; font-size: 9px; }
.photo-estimate__call-controls svg { width: 26px; height: 26px; }
.photo-estimate__call-screen .photo-estimate__call-end { display: grid; place-items: center; width: 46px; height: 46px; margin-top: 10px; border-radius: 50%; color: #fff; background: #dc4c43; }
.photo-estimate__call-end svg { width: 24px; height: 24px; fill: currentColor; stroke: none; transform: rotate(135deg); }
.photo-estimate__call-bubble { position: absolute; top: 147px; left: -20px; padding: 9px 12px; border-radius: 12px 12px 12px 0; color: #183f5b; background: #fff; font-size: 10px; line-height: 1.6; box-shadow: 0 4px 12px #0002; transform: rotate(5deg); }
.photo-estimate__call-bubble--second { top: auto; bottom: -18px; left: auto; right: -22px; border-radius: 12px 12px 0; }
.photo-estimate__en, .phone-banner__en { font: 700 11px Arial,sans-serif; letter-spacing: .18em; color: #ffcd9b; }
.photo-estimate__content h3 { margin: 10px 0 14px; font-size: 25px; line-height: 1.5; }
.photo-estimate__content h3 strong { color: #ffce98; }
.photo-estimate__content > p { margin: 0; font-size: 13px; line-height: 1.9; color: #e0e9ef; }
.photo-estimate ol { display: grid; gap: 12px; margin: 22px 0 0; padding: 0; list-style: none; }
.photo-estimate li { display: flex; align-items: center; gap: 10px; }
.photo-estimate li > span { display: grid; place-items: center; width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; color: #ffce98; border: 1px solid #ffce9880; font: 700 14px Arial,sans-serif; }
.photo-estimate li p { margin: 0; }
.photo-estimate li strong { display: block; font-size: 13px; }
.photo-estimate li small { display: block; margin-top: 3px; font-size: 11px; color: #cedce6; }
.staff-callout { position: relative; margin: 0 0 12px; padding: 9px 12px; border-radius: 10px; background: #fff; color: #204861; text-align: center; font-size: 12px; font-weight: 700; line-height: 1.6; }
.staff-callout::after { content: ''; position: absolute; bottom: -6px; left: calc(50% - 6px); border-width: 6px 6px 0; border-style: solid; border-color: #fff transparent transparent; }
.phone-staff { width: 120px; height: 120px; margin: 18px auto; border-radius: 50%; overflow: hidden; background: #fff2de; }
.phone-staff img { display: block; width: 104px; height: auto; margin: 4px auto 0; }
.photo-estimate__line-link { display: block; margin-top: 16px; color: #ffffffb8; text-align: center; white-space: nowrap; font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.warning-promise, .items-consult { grid-template-columns: 60px minmax(0,1fr) 80px 310px; gap: 18px; }
.consult-action { min-width: 0; }
.warning-promise__shield { width: 60px; }
.warning-promise__shield svg { width: 56px; height: 64px; }
.warning-promise__content h3 { font-size: 20px; }
.warning-promise__content h3 strong, .phrase { display: inline-block; }
.warning-promise__content h3 strong { font-size: inherit; }
.items-consult__icon > svg { width: 40px; height: 40px; fill: currentColor; stroke: none; }
.phone-banner { padding: 65px 24px; background: #f2f6f8; }
.phone-banner__inner { display: grid; grid-template-columns: .85fr 1.15fr; max-width: 1100px; margin: auto; overflow: hidden; border-radius: 20px; background: #12364e; color: #fff; box-shadow: 0 15px 35px #12364e1a; }
.phone-banner__visual { position: relative; margin: 0; min-height: 380px; }
.phone-banner__visual img { width: 100%; height: 100%; object-fit: cover; }
.phone-banner__visual figcaption { position: absolute; bottom: 0; left: 0; padding: 8px 12px; font-size: 10px; background: #12364e99; }
.phone-banner__content { padding: 36px; }
.phone-banner h2 { margin: 10px 0 18px; font-size: 25px; line-height: 1.6; }
.phone-banner h2 span { display: inline-block; }
.phone-banner ul { display: grid; gap: 9px; padding: 0; list-style: none; font-size: 13px; }
.phone-banner li span { display: inline-grid; place-items: center; width: 23px; height: 23px; margin-right: 8px; border: 1px solid #ffcd9b80; border-radius: 50%; color: #ffcd9b; }
.phone-banner__guide { font-size: 12px; line-height: 1.9; color: #d9e5ee; margin: 22px 0; }
.phone-banner__guide strong { display: block; color: #fff; margin-bottom: 3px; }
.phone-banner .phone-cta__number { font-size: 38px; }
.flow-phone { display: inline-block; color: #c04b18; white-space: nowrap; font-size: 12px; text-decoration: underline; }
@keyframes phone-ring { 0%, 72%, 100% { transform: rotate(0); } 76%, 84% { transform: rotate(-12deg); } 80%, 88% { transform: rotate(12deg); } 92% { transform: rotate(0); } }
@media (max-width: 1100px) {
  .photo-estimate { grid-template-columns: 180px minmax(0,1fr); gap: 30px; }
  .photo-estimate__action { grid-column: 1 / -1; max-width: 440px; width: 100%; justify-self: center; }
  .warning-promise, .items-consult { grid-template-columns: minmax(0,1fr) 80px 300px; }
  .warning-promise__shield, .items-consult__icon { display: none; }
  .reasons-cta__body { grid-template-columns: 1fr; }
  .reasons-cta__actions { padding: 0; border: 0; }
  .fixed-contact__inner { grid-template-columns: 3fr 2fr; }
}
@media (max-width: 820px) {
  body { padding-bottom: calc(98px + env(safe-area-inset-bottom)); }
  [id] { scroll-margin-top: 78px; }
  .site-header { height: 64px; }
  .site-header__inner { width: calc(100% - 20px); gap: 8px; }
  .site-header .brand { width: min(34vw,150px); flex-shrink: 0; }
  .site-header .brand img { width: 100%; height: auto; }
  .header-contact { gap: 0; min-width: 0; }
  .header-contact__phone > span { font-size: 9px; letter-spacing: 0; }
  .header-contact__phone a { font-size: clamp(17px,4.8vw,27px); padding: 6px; border-radius: 7px; color: #fff; background: var(--phone-background); letter-spacing: -.025em; }
  .header-contact__phone svg { width: 16px; margin-right: 4px; }
  .fixed-contact { padding: 7px 8px calc(9px + env(safe-area-inset-bottom)); }
  .fixed-contact__inner { width: 100%; grid-template-columns: minmax(0,3fr) minmax(0,2fr); gap: 7px; }
  .fixed-contact a { min-height: 76px; padding: 7px 4px; border-radius: 10px; }
  .fixed-contact a.phone-cta { flex-direction: row; gap: 3px; }
  .fixed-contact a.phone-cta > svg { width: 16px; height: 16px; }
  .fixed-contact .phone-cta__label { font-size: 11px; }
  .fixed-contact a.phone-cta .phone-cta__number { font-size: clamp(20px,5.35vw,29px); }
  .fixed-contact a small { display: block; font-size: 9px; }
  .fixed-contact a.form-cta { flex-direction: column; gap: 2px; }
  .fixed-contact a.form-cta svg { width: 17px; height: 18px; }
  .fixed-contact a.form-cta > span { font-size: clamp(11px,3.1vw,14px); }
  .fixed-contact a.form-cta small { margin-top: 2px; }
  .campaign-ticket__action { padding: 22px 16px; }
  .campaign-ticket__action > a.phone-cta { min-height: 108px; }
  .phone-cta .phone-cta__number { font-size: clamp(25px,7.4vw,32px); }
  .phone-cta .phone-cta__label { font-size: 12px; }
  .reasons-cta__body { padding: 22px 16px; gap: 18px; }
  .reasons-cta__actions { grid-template-columns: 1fr; }
  .reasons-cta__actions a.form-cta { min-height: 62px; flex-direction: row; }
  .reasons-cta__copy p { font-size: 17px; }
  .photo-estimate { grid-template-columns: minmax(0,1fr); gap: 28px; padding: 28px 16px; }
  .photo-estimate__phone { margin: 10px auto 20px; }
  .photo-estimate__content h3 { font-size: clamp(20px,5.8vw,28px); }
  .photo-estimate__content > p { font-size: 13px; }
  .photo-estimate__action { grid-column: auto; }
  .photo-estimate__line-link { font-size: clamp(9px,2.8vw,11px); }
  .phone-staff { width: 96px; height: 96px; }
  .phone-staff img { width: 88px; }
  .warning-promise, .items-consult { grid-template-columns: minmax(0,1fr); gap: 18px; padding: 24px 16px; }
  .warning-promise__content, .items-consult__copy { grid-column: auto; grid-row: auto; }
  .warning-promise > .cta-staff-mini, .items-consult > .cta-staff-mini { grid-column: auto; grid-row: auto; justify-self: center; margin: 0 0 -12px; }
  .warning-promise__content h3 { font-size: 19px; line-height: 1.65; }
  .warning-promise__content h3 strong { font-size: inherit; }
  .warning-promise__content ul { display: grid; gap: 8px; }
  .consult-action .phone-cta { flex-direction: column; gap: 4px; }
  .consult-action .phone-cta > svg { width: 22px; height: 22px; }
  .consult-action .phone-cta__label { font-size: 11px; }
  .phone-banner { padding: 40px 16px; }
  .phone-banner__inner { grid-template-columns: 1fr; }
  .phone-banner__visual { height: 220px; min-height: 0; }
  .phone-banner__visual img { object-position: center 55%; }
  .phone-banner__content { padding: 24px 16px; }
  .phone-banner h2 { font-size: clamp(17px,4.9vw,24px); }
  .phone-banner li { font-size: 11px; }
  .phone-banner .phone-cta__number { font-size: clamp(25px,7.4vw,34px); }
}
@media (prefers-reduced-motion: reduce) {
  .phone-cta, .phone-cta::before, .fixed-contact__phone .phone-cta__icon { animation: none !important; }
}

/* LINE CTA: 以前と同じ緑のLINEデザイン（電話より控えめなサブ導線） */
a.line-cta { display: flex; min-width: 0; align-items: center; justify-content: center; gap: 8px; padding: 10px 12px; border: 2px solid #ffffffbd; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #20b967, #119652); box-shadow: 0 4px 0 #04395b33, 0 10px 22px #04395b29; font-weight: 700; line-height: 1.35; text-align: left; text-decoration: none; }
a.line-cta > b { display: grid; flex: 0 0 auto; width: 38px; height: 32px; border-radius: 10px; color: var(--green); background: #fff; place-items: center; font: 700 9px Arial, sans-serif; }
a.line-cta > span { display: block; min-width: 0; font-size: 14px; white-space: nowrap; }
a.line-cta small { display: block; font-size: 10px; font-weight: 500; color: #fff; }
a.line-cta:hover, a.line-cta:focus-visible { filter: brightness(1.06); }
.campaign-ticket__secondary a.line-cta { flex-direction: row; font-size: 13px; }
.campaign-ticket__secondary a.line-cta > span { font-size: 13px; }
.photo-estimate__action a.photo-estimate__line-link { max-width: 260px; margin: 16px auto 0; padding: 8px 12px; font-size: inherit; text-decoration: none; white-space: normal; }
.photo-estimate__action a.photo-estimate__line-link > span { font-size: 13px; }

/* 固定バー：電話（最大）・LINE・メールの3ボタン */
.fixed-contact__inner { grid-template-columns: minmax(200px, 1fr) minmax(320px, 1.6fr) minmax(170px, 1fr) minmax(170px, 1fr); }
.fixed-contact a.fixed-contact__line > span { font-size: 15px; }
@media (max-width: 1100px) {
  .fixed-contact__inner { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 820px) {
  .fixed-contact__inner { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: 5px; }
  .fixed-contact a.phone-cta .phone-cta__number { font-size: clamp(15px, 4.9vw, 24px); }
  .fixed-contact a.phone-cta > svg { width: 14px; height: 14px; }
  .fixed-contact .phone-cta__label { font-size: 10px; }
  .fixed-contact a.line-cta { flex-direction: column; gap: 3px; padding: 6px 2px; text-align: center; }
  .fixed-contact a.line-cta > b { width: 30px; height: 24px; border-radius: 8px; font-size: 8px; }
  .fixed-contact a.line-cta > span { font-size: clamp(10px, 3vw, 13px); }
  .fixed-contact a.line-cta small, .fixed-contact a.form-cta small { font-size: 8px; }
  .fixed-contact a.form-cta > span { font-size: clamp(10px, 3vw, 13px); white-space: nowrap; }
}
@media (max-width: 820px) {
  .fixed-contact a.form-cta { padding: 6px 2px; }
  .fixed-contact a.form-cta > span { white-space: normal; word-break: keep-all; line-height: 1.3; }
}
@media (max-width: 420px) {
  .campaign-ticket__secondary a.line-cta { flex-direction: column; gap: 4px; padding: 8px 4px; text-align: center; }
  .campaign-ticket__secondary a.line-cta > b { width: 32px; height: 26px; font-size: 8px; }
}
@media (max-width: 820px) {
  .fixed-contact a.line-cta > span { white-space: normal; word-break: keep-all; line-height: 1.3; }
}
