:root{
  --ink:#0b3440;
  --muted:#45616a;
  --bg:#f5f7f8;
  --line:#e7eef0;
  --teal:#2e6e7a;
  --teal-2:#285f69;
  --teal-soft:#2a6a76;
  --card:#ffffff;
  --shadow:0 20px 50px rgba(9, 34, 44, .12);
  --shadow-soft:0 12px 30px rgba(9, 34, 44, .10);
  --radius-lg:28px;
  --radius-md:22px;
  --container:1120px;
}

*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  color:var(--ink);
  background:#fff;
  font-size:15px;
}

/* Reveal (luxury fade-in) */
.reveal{
  opacity:0;
  transform:translate3d(0, 18px, 0);
  transition:
    opacity 900ms cubic-bezier(.16, 1, .3, 1),
    transform 900ms cubic-bezier(.16, 1, .3, 1);
  will-change:opacity, transform;
}
.reveal--up{transform:translate3d(0, 18px, 0)}
.reveal--down{transform:translate3d(0, -18px, 0)}
.reveal--left{transform:translate3d(-18px, 0, 0)}
.reveal--right{transform:translate3d(18px, 0, 0)}
.reveal.is-inview{
  opacity:1;
  transform:translate3d(0,0,0);
}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none}
}
a{color:inherit}

.container{
  width:min(var(--container), calc(100% - 56px));
  margin-inline:auto;
}

.siteHeader{
  position:sticky;
  top:0;
  z-index:20;
  background:transparent;
}
.siteHeader__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 0;
}
.siteNav{
  display:flex;
  align-items:center;
  gap:22px;
}
.siteNav a{
  text-decoration:none;
  font-weight:800;
  font-size:12px;
  letter-spacing:.08em;
  color:rgba(11,52,64,.78);
}
.siteNav a:hover{
  color:rgba(11,52,64,.92);
}
.brand{
  display:flex;
  align-items:baseline;
  gap:12px;
  text-decoration:none;
}
.brand__mark{
  font-weight:800;
  letter-spacing:.03em;
  font-size:22px;
}
.brand__sub{
  font-weight:500;
  font-size:12px;
  opacity:.75;
  letter-spacing:.08em;
}

.menuButton{
  width:46px;
  height:46px;
  border-radius:999px;
  border:0;
  background:rgba(10, 35, 45, .55);
  box-shadow:0 10px 25px rgba(0,0,0,.12);
  cursor:pointer;
}
.menuButton__dots{
  display:block;
  width:18px;
  height:12px;
  margin:auto;
  background:
    linear-gradient(#fff 0 0) 0 0/100% 2px no-repeat,
    linear-gradient(#fff 0 0) 0 50%/100% 2px no-repeat,
    linear-gradient(#fff 0 0) 0 100%/100% 2px no-repeat;
}

@media (min-width: 981px){
  .menuButton,
  .mobileMenu,
  .mobileMenuBackdrop{display:none !important;}
}

.mobileMenuBackdrop{
  position:fixed;
  inset:0;
  background:rgba(11,52,64,.24);
  backdrop-filter:blur(2px);
  z-index:19;
}
.mobileMenu{
  position:fixed;
  top:72px;
  right:18px;
  width:min(320px, calc(100% - 36px));
  background:#fff;
  border:1px solid rgba(11,52,64,.18);
  border-radius:16px;
  box-shadow:0 22px 60px rgba(8, 30, 38, .18);
  padding:14px;
  z-index:20;
}
.mobileMenu__nav{
  display:grid;
  gap:6px;
}
.mobileMenu__nav a{
  text-decoration:none;
  font-weight:900;
  letter-spacing:.06em;
  font-size:13px;
  color:#0b3440;
  padding:12px 12px;
  border-radius:12px;
  background:rgba(11,52,64,.03);
  border:1px solid rgba(11,52,64,.08);
}
.mobileMenu__nav a:active{
  transform:translateY(1px);
}
.siteHeader--open .menuButton{
  background:rgba(10, 35, 45, .66);
}
.isMenuOpen{
  overflow:hidden;
}

/* Hero */
.hero{
  position:relative;
  overflow:hidden;
  padding:38px 0 34px;
}
.scrollIndicator{
  position:absolute;
  left:44px;
  top:64%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  z-index:3;
  user-select:none;
  pointer-events:auto;
  text-decoration:none;
}
.scrollIndicator__label{
  writing-mode:vertical-rl;
  letter-spacing:.24em;
  font-weight:700;
  font-size:10px;
  color:rgba(11, 52, 64, .55);
}
.scrollIndicator__line{
  width:1px;
  height:72px;
  background:rgba(11, 52, 64, .25);
}
.scrollIndicator__dot{
  width:6px;
  height:6px;
  border-radius:999px;
  background:rgba(46,110,122,.65);
}
.hero__bg{
  position:absolute;
  inset:0;
  background:url("./assets/hero.png");
  background-size:cover;
  background-position:right center;
  transform:scale(1.02);
}
.hero__inner{
  position:relative;
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  align-items:center;
  gap:40px;
  min-height:600px;
}
.hero__copy{
  padding:34px 0 14px;
}
.hero__title{
  margin:0;
  font-size:46px;
  line-height:1.18;
  letter-spacing:.02em;
  font-weight:800;
}
.hero__lead{
  margin:14px 0 22px;
  color:var(--muted);
  font-size:15px;
  line-height:1.8;
}
.primaryCta{
  display:inline-flex;
  align-items:center;
  gap:14px;
  padding:14px 18px 14px 22px;
  background:linear-gradient(180deg, var(--teal) 0%, var(--teal-2) 100%);
  color:#fff;
  text-decoration:none;
  border-radius:999px;
  box-shadow:0 16px 30px rgba(18, 78, 90, .22);
}
.primaryCta__label{
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
}
.primaryCta__icon{
  width:32px;
  height:32px;
  border-radius:999px;
  background:rgba(255,255,255,.22);
  position:relative;
}
.primaryCta__icon::before{
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  width:10px;
  height:10px;
  border-right:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg);
  translate:-1px 0;
}
.primaryCta--wide{padding-inline:26px 18px}

.hero__visual{height:100%}

/* Sections */
.problem{
  padding:22px 0 26px;
}
.sectionKicker{
  margin:0 0 18px;
  text-align:center;
  color:#2a4d57;
  font-weight:700;
  letter-spacing:.08em;
  font-size:15px;
}

.problemGrid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:24px;
  align-items:start;
  justify-items:center;
}
.problemItem{
  width:min(190px, 100%);
  text-align:center;
  position:relative;
  padding-top:8px;
}
.problemItem__dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:rgba(46,110,122,.72);
  margin:0 auto -6px;
}
.problemItem__circle{
  width:120px;
  height:120px;
  margin:0 auto 14px;
  border-radius:999px;
  background:rgba(11, 52, 64, .015);
  border:1px solid rgba(11, 52, 64, .10);
  display:grid;
  place-items:center;
  box-shadow:0 20px 50px rgba(9, 34, 44, .06);
}
.problemItem__icon{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
}
.problemItem__icon::before{
  content:"";
  width:54px;
  height:54px;
  background:linear-gradient(180deg, #1d4854 0%, #0b3440 100%);
  -webkit-mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
  opacity:.88;
}
.problemItem__text{
  margin:0;
  font-size:13px;
  line-height:1.65;
  color:#2f4f59;
  font-weight:700;
}

/* Icon set (simple line icons via mask) */
.strengthCard__icon::before,
.flowStep__icon::before{
  content:"";
  width:30px;
  height:30px;
  background:linear-gradient(180deg, #1d4854 0%, #0b3440 100%);
  -webkit-mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
  opacity:.9;
}

/* masks */
[data-icon="chart"]::before{ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 19h16v2H2V3h2v16zm3-2H5v-7h2v7zm4 0H9V5h2v12zm4 0h-2v-9h2v9zm4 0h-2v-5h2v5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 19h16v2H2V3h2v16zm3-2H5v-7h2v7zm4 0H9V5h2v12zm4 0h-2v-9h2v9zm4 0h-2v-5h2v5z'/%3E%3C/svg%3E"); }
[data-icon="pc"]::before{ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5v2h3v2H6v-2h3v-2H6a2 2 0 0 1-2-2V5zm2 0v10h12V5H6z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5v2h3v2H6v-2h3v-2H6a2 2 0 0 1-2-2V5zm2 0v10h12V5H6z'/%3E%3C/svg%3E");}
[data-icon="phone"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm0 3v14h10V5H7zm5 15a1.25 1.25 0 1 0 0 2.5A1.25 1.25 0 0 0 12 20z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm0 3v14h10V5H7zm5 15a1.25 1.25 0 1 0 0 2.5A1.25 1.25 0 0 0 12 20z'/%3E%3C/svg%3E");}
[data-icon="pen"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zm2.92 2.83H5v-.92l9.06-9.06.92.92L5.92 20.08zM20.71 7.04a1.003 1.003 0 0 0 0-1.42l-2.34-2.34a1.003 1.003 0 0 0-1.42 0l-1.83 1.83 3.75 3.75 1.84-1.82z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zm2.92 2.83H5v-.92l9.06-9.06.92.92L5.92 20.08zM20.71 7.04a1.003 1.003 0 0 0 0-1.42l-2.34-2.34a1.003 1.003 0 0 0-1.42 0l-1.83 1.83 3.75 3.75 1.84-1.82z'/%3E%3C/svg%3E");}
[data-icon="search"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M10.5 3a7.5 7.5 0 1 0 4.53 13.48l4.08 4.08a1.2 1.2 0 0 0 1.7-1.7l-4.08-4.08A7.5 7.5 0 0 0 10.5 3zm0 2.4a5.1 5.1 0 1 1 0 10.2 5.1 5.1 0 0 1 0-10.2z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M10.5 3a7.5 7.5 0 1 0 4.53 13.48l4.08 4.08a1.2 1.2 0 0 0 1.7-1.7l-4.08-4.08A7.5 7.5 0 0 0 10.5 3zm0 2.4a5.1 5.1 0 1 1 0 10.2 5.1 5.1 0 0 1 0-10.2z'/%3E%3C/svg%3E");}

/* Strength */
.strength{
  margin-top:18px;
  background:
    radial-gradient(1200px 400px at 20% 0%, rgba(255,255,255,.08), rgba(255,255,255,0) 60%),
    linear-gradient(180deg, #2f6f7b 0%, #2b6570 100%);
  color:#fff;
  padding:22px 0 18px;
  position:relative;
  overflow:hidden;
}
.strength::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 35% 40%, rgba(255,255,255,.05) 0 2px, transparent 3px),
    radial-gradient(circle at 65% 60%, rgba(0,0,0,.05) 0 2px, transparent 3px);
  opacity:.35;
  mix-blend-mode:overlay;
  pointer-events:none;
}
.sectionTitle{
  margin:0 0 18px;
  text-align:center;
  font-size:18px;
  letter-spacing:.16em;
  color:#0b3440;
}
.sectionTitle--light{color:#fff}

.strengthTitleBar{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:0 0 16px;
}
.strengthTitleBar__title{
  margin:0;
  font-size:16px;
  letter-spacing:.18em;
  font-weight:800;
  color:#fff;
}
.strengthTitleBar__line{
  height:1px;
  width:76px;
  background:rgba(255,255,255,.32);
}

.strengthItems{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:0;
  padding:6px 0;
}
.strengthItem{
  display:grid;
  grid-template-columns: 98px 1fr;
  align-items:center;
  gap:16px;
  padding:20px 22px;
  min-height:150px;
}
.strengthItem + .strengthItem{
  border-left:1px solid rgba(255,255,255,.16);
}
.strengthItem__iconWrap{
  position:relative;
  width:92px;
  height:92px;
  border-radius:999px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.30);
  background:rgba(0,0,0,.04);
}
.strengthItem__iconWrap::before{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.20);
}
.strengthItem__no{
  position:absolute;
  top:-10px;
  left:10px;
  font-weight:800;
  font-size:12px;
  letter-spacing:.08em;
  color:rgba(204, 216, 108, .95);
  text-shadow:0 6px 16px rgba(0,0,0,.18);
}
.strengthItem__no--ghost{
  color:rgba(255,255,255,.14);
  top:10px;
  left:40px;
  font-size:44px;
  letter-spacing:.02em;
  text-shadow:none;
}
.strengthItem__icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  opacity:.95;
}
.strengthItem__icon::before{
  content:"";
  width:44px;
  height:44px;
  background:#fff;
  -webkit-mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
}
.strengthItem__title{
  margin:0 0 8px;
  font-size:15px;
  letter-spacing:.10em;
  font-weight:800;
  color:#fff;
}
.strengthItem__text{
  margin:0;
  font-size:12px;
  line-height:1.85;
  color:rgba(255,255,255,.78);
  font-weight:600;
}
[data-icon="target"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M11 2h2v2.06A8.001 8.001 0 0 1 19.94 11H22v2h-2.06A8.001 8.001 0 0 1 13 19.94V22h-2v-2.06A8.001 8.001 0 0 1 4.06 13H2v-2h2.06A8.001 8.001 0 0 1 11 4.06V2zm1 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm0 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M11 2h2v2.06A8.001 8.001 0 0 1 19.94 11H22v2h-2.06A8.001 8.001 0 0 1 13 19.94V22h-2v-2.06A8.001 8.001 0 0 1 4.06 13H2v-2h2.06A8.001 8.001 0 0 1 11 4.06V2zm1 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12zm0 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6z'/%3E%3C/svg%3E");}
[data-icon="responsive"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v6h-2V6H6v10h6v2H6a2 2 0 0 1-2-2V6zm14 8a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h4zm0 2h-4v4h4v-4z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v6h-2V6H6v10h6v2H6a2 2 0 0 1-2-2V6zm14 8a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h4zm0 2h-4v4h4v-4z'/%3E%3C/svg%3E");}
[data-icon="seo"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 3h2v18H3V3zm4 10h2v8H7v-8zm4-6h2v14h-2V7zm4 4h2v10h-2V11zm4-8h2v18h-2V3z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 3h2v18H3V3zm4 10h2v8H7v-8zm4-6h2v14h-2V7zm4 4h2v10h-2V11zm4-8h2v18h-2V3z'/%3E%3C/svg%3E");}

/* Flow + CTA (with background image) */
.flowCta{
  padding:26px 0 44px;
  background:#fff;
  position:relative;
  overflow:hidden;
}
.flowCta::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("./assets/cta-bg.png");
  background-size:cover;
  background-position:left bottom;
  transform:scale(1.02);
  z-index:0;
}
.flowCta::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,
      rgba(255,255,255,.92) 0%,
      rgba(255,255,255,.92) 42%,
      rgba(255,255,255,.74) 100%);
  z-index:0;
  pointer-events:none;
}
.flowCta .container{position:relative; z-index:1}

.flowTitleBar{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin:0 0 20px;
}
.flowTitleBar__title{
  margin:0;
  font-size:18px;
  letter-spacing:.18em;
  font-weight:800;
  color:#0b3440;
}
.flowTitleBar__line{
  height:1px;
  width:84px;
  background:rgba(11, 52, 64, .28);
}

.flowRow{
  list-style:none;
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  align-items:start;
  gap:0;
  padding:0;
  margin:0;
}
.flowItem{
  text-align:center;
  padding:6px 12px 14px;
}
.flowItem__no{
  width:28px;
  height:28px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(46,110,122,.96), rgba(40,95,105,.96));
  color:#fff;
  display:grid;
  place-items:center;
  margin:0 auto 10px;
  font-weight:800;
  font-size:11px;
  letter-spacing:.06em;
  box-shadow:0 10px 18px rgba(18, 78, 90, .18);
}
.flowItem__icon{
  width:64px;
  height:64px;
  margin:0 auto 10px;
  display:grid;
  place-items:center;
}
.flowItem__icon::before{
  content:"";
  width:54px;
  height:54px;
  background:linear-gradient(180deg, #163b46 0%, #0b3440 100%);
  -webkit-mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
  opacity:.95;
}
.flowItem__title{
  margin:0 0 6px;
  font-size:13px;
  font-weight:800;
  color:#0b3440;
  letter-spacing:.08em;
}
.flowItem__text{
  margin:0;
  font-size:12px;
  line-height:1.6;
  color:#3d5b64;
  font-weight:600;
}

.flowArrow{
  display:none;
}
.flowRow{
  position:relative;
}
.flowRow > .flowItem:not(:last-child){
  position:relative;
}
.flowRow > .flowItem:not(:last-child)::after{
  content:"";
  position:absolute;
  right:-12px;
  top:46px;
  width:38px;
  height:0;
  border-top:2px dotted rgba(11, 52, 64, .28);
}
.flowRow > .flowItem:not(:last-child)::before{
  content:"";
  position:absolute;
  right:-16px;
  top:40px;
  width:10px;
  height:10px;
  border-right:2px solid rgba(11, 52, 64, .28);
  border-bottom:2px solid rgba(11, 52, 64, .28);
  transform:rotate(-45deg);
}

.flowBottom{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  align-items:center;
  gap:26px;
  margin-top:18px;
}
.flowBottom__left{
  display:grid;
  justify-items:center;
}
.flowBottom__kicker{
  position:relative;
  margin:0 0 12px;
  text-align:center;
  font-weight:800;
  letter-spacing:.08em;
  color:#2a4d57;
}
.flowBottom__kicker::before,
.flowBottom__kicker::after{
  content:"";
  position:absolute;
  top:50%;
  width:22px;
  height:1px;
  background:rgba(42,77,87,.38);
}
.flowBottom__kicker::before{left:-30px; transform:rotate(-25deg)}
.flowBottom__kicker::after{right:-30px; transform:rotate(25deg)}
.flowBottom__list{
  margin:0;
  padding:0;
  list-style:none;
  color:#2a4d57;
  font-weight:700;
  font-size:12px;
  line-height:2;
}
.flowBottom__list li{
  position:relative;
  padding-left:22px;
}
.flowBottom__list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.7em;
  width:14px;
  height:14px;
  border-radius:999px;
  background:rgba(46,110,122,.16);
  border:1px solid rgba(46,110,122,.28);
}
.flowBottom__list li::after{
  content:"";
  position:absolute;
  left:4px;
  top:.95em;
  width:6px;
  height:3px;
  border-left:2px solid rgba(27,75,86,.9);
  border-bottom:2px solid rgba(27,75,86,.9);
  transform:rotate(-45deg);
}

[data-icon="hear"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a7 7 0 0 0-7 7v3a5 5 0 0 0 5 5h1v3.5a1.5 1.5 0 0 0 2.56 1.06L16.62 18H17a5 5 0 0 0 5-5V9a7 7 0 0 0-7-7h-3zm-5 7a5 5 0 0 1 5-5h3a5 5 0 0 1 5 5v4a3 3 0 0 1-3 3h-1.2l-2.8 2.8V16h-3a3 3 0 0 1-3-3V9z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a7 7 0 0 0-7 7v3a5 5 0 0 0 5 5h1v3.5a1.5 1.5 0 0 0 2.56 1.06L16.62 18H17a5 5 0 0 0 5-5V9a7 7 0 0 0-7-7h-3zm-5 7a5 5 0 0 1 5-5h3a5 5 0 0 1 5 5v4a3 3 0 0 1-3 3h-1.2l-2.8 2.8V16h-3a3 3 0 0 1-3-3V9z'/%3E%3C/svg%3E");}
[data-icon="estimate"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm0 2v16h10V4H7zm2 3h6v2H9V7zm0 4h6v2H9v-2zm0 4h4v2H9v-2z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm0 2v16h10V4H7zm2 3h6v2H9V7zm0 4h6v2H9v-2zm0 4h4v2H9v-2z'/%3E%3C/svg%3E");}
[data-icon="design"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 4h16v2H4V4zm0 4h10v2H4V8zm0 4h16v2H4v-2zm0 4h10v2H4v-2zm13.5-8.5 3 3-7.6 7.6H10v-2.9l7.5-7.6zm2.1-.9-.6-.6a1 1 0 0 0-1.4 0l-1 1 3 3 1-1a1 1 0 0 0 0-1.4z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 4h16v2H4V4zm0 4h10v2H4V8zm0 4h16v2H4v-2zm0 4h10v2H4v-2zm13.5-8.5 3 3-7.6 7.6H10v-2.9l7.5-7.6zm2.1-.9-.6-.6a1 1 0 0 0-1.4 0l-1 1 3 3 1-1a1 1 0 0 0 0-1.4z'/%3E%3C/svg%3E");}
[data-icon="check"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z'/%3E%3C/svg%3E");}
[data-icon="support"]::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a8 8 0 0 0-8 8v4a4 4 0 0 0 4 4h1v-8H6a6 6 0 0 1 12 0h-3v8h1a4 4 0 0 0 4-4v-4a8 8 0 0 0-8-8zm-1 18h2v2h-2v-2z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a8 8 0 0 0-8 8v4a4 4 0 0 0 4 4h1v-8H6a6 6 0 0 1 12 0h-3v8h1a4 4 0 0 0 4-4v-4a8 8 0 0 0-8-8zm-1 18h2v2h-2v-2z'/%3E%3C/svg%3E");}

/* Bottom CTA (legacy) - kept intentionally unused */

.siteFooter{
  padding:18px 0 26px;
  color:#6a8188;
}
.siteFooter__inner{
  display:flex;
  justify-content:center;
}

/* Common section title bar (light) */
.sectionTitleBar{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin:0 0 18px;
}
.sectionTitleBar__title{
  margin:0;
  font-size:16px;
  letter-spacing:.18em;
  font-weight:800;
  color:#0b3440;
}
.sectionTitleBar__line{
  height:1px;
  width:84px;
  background:rgba(11, 52, 64, .22);
}

/* Pricing */
.pricing{
  padding:34px 0 30px;
  background:#fff;
}
.pricingGrid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  margin-top:58px;
  gap:22px;
  align-items:stretch;
}
.pricingCard{
  background:#f6f8f9;
  border:1px solid rgba(11,52,64,.12);
  border-radius:12px;
  padding:24px 22px 22px;
  box-shadow:0 10px 26px rgba(9, 34, 44, .05);
  position:relative;
  min-height:420px;
}
.pricingCard--featured{
  transform:translateY(-10px);
  border:2px solid rgba(46,110,122,.60);
  box-shadow:0 26px 70px rgba(9, 34, 44, .14);
  padding-top:44px;
  background:#fff;
}
.pricingCard--featured::before{
  content:"おすすめ";
  position:absolute;
  left:12px;
  right:12px;
  top:-22px;
  height:44px;
  border-radius:12px 12px 10px 10px;
  background:linear-gradient(180deg, #2f6f7b 0%, #2b6570 100%);
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:900;
  letter-spacing:.18em;
  font-size:13px;
  box-shadow:0 14px 30px rgba(18, 78, 90, .20);
}
.pricingCard__name{
  margin:0 0 10px;
  text-align:center;
  font-size:18px;
  font-weight:900;
  letter-spacing:.08em;
}
.pricingCard__desc{
  margin:0 0 14px;
  text-align:center;
  font-size:13px;
  color:rgba(11,52,64,.62);
  font-weight:800;
  line-height:1.7;
}
.pricingCard__desc::after{
  content:"";
  display:block;
  width:26px;
  height:1px;
  background:rgba(11,52,64,.20);
  margin:14px auto 0;
}
.pricingCard__price{
  margin:0 0 18px;
  text-align:center;
  font-weight:900;
  color:#0b3440;
  letter-spacing:.02em;
  font-size:34px;
}
.pricingCard__price span:first-child{
  font-size:18px;
  margin-right:3px;
  font-weight:900;
}
.pricingCard__tax{
  font-size:13px;
  font-weight:800;
  color:rgba(11,52,64,.55);
  margin-left:4px;
}
.pricingCard__list{
  margin:0;
  padding:0;
  list-style:none;
  font-size:13px;
  line-height:2.05;
  color:#2a4d57;
  font-weight:800;
}
.pricingCard__list li{
  position:relative;
  padding-left:30px;
}
.pricingCard__list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:16px;
  height:16px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(47,111,123,.96), rgba(43,101,112,.96));
  box-shadow:0 10px 18px rgba(18, 78, 90, .18);
}
.pricingCard__list li::after{
  content:"";
  position:absolute;
  left:5px;
  top:.95em;
  width:6px;
  height:3px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg);
}
.pricingNote{
  margin:16px 0 0;
  text-align:center;
  font-size:10px;
  color:rgba(11,52,64,.55);
  font-weight:700;
}

/* Works */
.works{
  padding:22px 0 26px;
  background:#fff;
}
.worksGrid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:34px;
  align-items:start;
}
.workCard{
  text-align:center;
}
.workCard__device{
  width:min(320px, 100%);
  height:150px;
  margin:0 auto 14px;
  position:relative;
}
.workCard__laptop{
  position:absolute;
  left:0;
  right:38px;
  top:8px;
  height:128px;
  border-radius:10px;
  border:1px solid rgba(11,52,64,.16);
  background:linear-gradient(135deg, rgba(46,110,122,.08), rgba(46,110,122,0));
  box-shadow:0 16px 32px rgba(9, 34, 44, .10);
  overflow:hidden;
}
.workCard__laptop::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 22% 28%, rgba(11,52,64,.12), transparent 55%),
    radial-gradient(circle at 70% 60%, rgba(46,110,122,.10), transparent 55%);
  opacity:.9;
}
.workCard__laptop::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:16px;
  height:8px;
  border-radius:999px;
  background:rgba(11,52,64,.08);
}
.workCard__phone{
  position:absolute;
  right:0;
  bottom:8px;
  width:56px;
  height:112px;
  border-radius:14px;
  border:1px solid rgba(11,52,64,.16);
  background:#fff;
  box-shadow:0 18px 34px rgba(9, 34, 44, .12);
  overflow:hidden;
}
.workCard__phone::before{
  content:"";
  position:absolute;
  inset:10px 8px 10px;
  border-radius:10px;
  background:
    linear-gradient(135deg, rgba(46,110,122,.10), rgba(46,110,122,0)),
    radial-gradient(circle at 30% 22%, rgba(11,52,64,.12), transparent 55%);
}
.workCard__phone::after{
  content:"";
  position:absolute;
  left:50%;
  top:8px;
  width:18px;
  height:4px;
  border-radius:999px;
  background:rgba(11,52,64,.10);
  transform:translateX(-50%);
}
.workCard__device--dark .workCard__laptop::before{
  background:
    radial-gradient(circle at 55% 36%, rgba(0,0,0,.22), transparent 55%),
    radial-gradient(circle at 30% 70%, rgba(11,52,64,.18), transparent 55%);
  opacity:1;
}
.workCard__device--dark .workCard__laptop{
  background:linear-gradient(135deg, rgba(11,52,64,.20), rgba(11,52,64,0));
}
.workCard__device--dark .workCard__phone::before{
  background:
    radial-gradient(circle at 50% 30%, rgba(0,0,0,.25), transparent 55%),
    linear-gradient(135deg, rgba(11,52,64,.14), rgba(11,52,64,0));
}
.workCard__device--soft .workCard__laptop::before{
  background:
    radial-gradient(circle at 60% 30%, rgba(255,255,255,.85), rgba(255,255,255,0) 55%),
    radial-gradient(circle at 25% 60%, rgba(46,110,122,.10), transparent 55%);
  opacity:1;
}
.workCard__device--soft .workCard__laptop{
  background:linear-gradient(135deg, rgba(255,255,255,.90), rgba(46,110,122,0));
}
.workCard__title{
  margin:0 0 6px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
}
.workCard__tags{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}
.workTag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:24px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(11,52,64,.06);
  border:1px solid rgba(11,52,64,.10);
  color:rgba(11,52,64,.70);
  font-weight:800;
  font-size:11px;
  letter-spacing:.04em;
}
.worksMore{
  display:flex;
  justify-content:center;
  margin-top:18px;
}
.worksMore__button{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  padding:12px 18px;
  border-radius:999px;
  border:2px solid rgba(11,52,64,.26);
  background:#fff;
  box-shadow:none;
  font-weight:800;
  font-size:12px;
  color:#0b3440;
  min-width:260px;
  justify-content:center;
}
.worksMore__icon{
  width:28px;
  height:28px;
  border-radius:999px;
  background:rgba(11,52,64,.06);
  border:1px solid rgba(11,52,64,.12);
  position:relative;
}
.worksMore__icon::before{
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  width:9px;
  height:9px;
  border-right:2px solid rgba(11,52,64,.45);
  border-bottom:2px solid rgba(11,52,64,.45);
  transform:rotate(-45deg);
  translate:-1px 0;
}

/* Voice */
.voice{
  padding:24px 0 28px;
  background:linear-gradient(180deg, #2f6f7b 0%, #2b6570 100%);
  color:#fff;
}
.voiceTitleBar{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin:0 0 18px;
}
.voiceTitleBar__title{
  margin:0;
  font-size:16px;
  letter-spacing:.18em;
  font-weight:800;
  color:#fff;
}
.voiceTitleBar__line{
  height:1px;
  width:84px;
  background:rgba(255,255,255,.32);
}
.voiceGrid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
}
.voiceCard{
  background:#fff;
  color:#0b3440;
  border-radius:8px;
  padding:18px 18px 14px;
  box-shadow:none;
  border:1px solid rgba(11,52,64,.22);
}
.voiceCard__icon{
  width:64px;
  height:64px;
  margin:0 auto 10px;
  background:rgba(11,52,64,.06);
  border:1px solid rgba(11,52,64,.14);
  border-radius:999px;
  display:grid;
  place-items:center;
}
.voiceCard__icon::before{
  content:"";
  width:44px;
  height:44px;
  background:rgba(11,52,64,.72);
  -webkit-mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
}
.voiceCard__icon[data-voice-icon="female"]::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 26c0-9 6-16 14-16s14 7 14 16'/%3E%3Cpath d='M22 28c0 10 7 18 10 18s10-8 10-18'/%3E%3Cpath d='M20 54c3-9 11-12 12-12s9 3 12 12'/%3E%3Cpath d='M26 26c1-4 4-7 6-7s5 3 6 7'/%3E%3C/g%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 26c0-9 6-16 14-16s14 7 14 16'/%3E%3Cpath d='M22 28c0 10 7 18 10 18s10-8 10-18'/%3E%3Cpath d='M20 54c3-9 11-12 12-12s9 3 12 12'/%3E%3Cpath d='M26 26c1-4 4-7 6-7s5 3 6 7'/%3E%3C/g%3E%3C/svg%3E");
}
.voiceCard__icon[data-voice-icon="male"]::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 26c0-10 6-16 12-16s12 6 12 16'/%3E%3Cpath d='M22 30c0 9 6 16 10 16s10-7 10-16'/%3E%3Cpath d='M18 54c3-8 10-12 14-12s11 4 14 12'/%3E%3Cpath d='M24 26c2-5 6-8 8-8s6 3 8 8'/%3E%3C/g%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 26c0-10 6-16 12-16s12 6 12 16'/%3E%3Cpath d='M22 30c0 9 6 16 10 16s10-7 10-16'/%3E%3Cpath d='M18 54c3-8 10-12 14-12s11 4 14 12'/%3E%3Cpath d='M24 26c2-5 6-8 8-8s6 3 8 8'/%3E%3C/g%3E%3C/svg%3E");
}
.voiceCard__icon[data-voice-icon="female2"]::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 26c0-9 6-16 14-16s14 7 14 16'/%3E%3Cpath d='M22 28c0 10 7 18 10 18s10-8 10-18'/%3E%3Cpath d='M20 54c2-8 9-12 12-12s10 4 12 12'/%3E%3Cpath d='M24 24c2-3 5-5 8-5s6 2 8 5'/%3E%3C/g%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 26c0-9 6-16 14-16s14 7 14 16'/%3E%3Cpath d='M22 28c0 10 7 18 10 18s10-8 10-18'/%3E%3Cpath d='M20 54c2-8 9-12 12-12s10 4 12 12'/%3E%3Cpath d='M24 24c2-3 5-5 8-5s6 2 8 5'/%3E%3C/g%3E%3C/svg%3E");
}
.voiceCard__title{
  margin:0 0 10px;
  text-align:left;
  font-size:14px;
  font-weight:900;
  letter-spacing:.08em;
  color:#0b3440;
}
.voiceCard__text{
  margin:0 0 14px;
  font-size:12px;
  line-height:1.9;
  color:rgba(11,52,64,.82);
  font-weight:800;
}
.voiceCard__from{
  margin:0;
  text-align:right;
  font-size:11px;
  color:rgba(11,52,64,.55);
  font-weight:800;
}

/* Assurance */
.assurance{
  padding:26px 0 30px;
  background:#fff;
}
.assuranceGrid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  align-items:stretch;
}
.assuranceCard{
  background:#fff;
  border-radius:14px;
  border:1px solid rgba(11,52,64,.14);
  box-shadow:0 18px 44px rgba(9, 34, 44, .06);
  padding:18px 18px 16px;
}
.assuranceCard__icon{
  width:56px;
  height:56px;
  border-radius:999px;
  background:rgba(46,110,122,.10);
  border:1px solid rgba(46,110,122,.18);
  display:grid;
  place-items:center;
  margin:0 auto 12px;
}
.assuranceCard__icon::before{
  content:"";
  width:30px;
  height:30px;
  background:linear-gradient(180deg, #1d4854 0%, #0b3440 100%);
  -webkit-mask-size:contain;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
  opacity:.9;
}
.assuranceCard__icon[data-assurance-icon="handshake"]::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M21 8.5 17.5 5 14 8.5l1.4 1.4L17.5 7.8 19.6 9.9l-6.7 6.7a2 2 0 0 1-2.8 0l-1.1-1.1 1.4-1.4 1.1 1.1a.5.5 0 0 0 .7 0l6-6L21 8.5zM3 8.5 6.5 5 10 8.5 8.6 9.9 6.5 7.8 4.4 9.9l3.1 3.1-1.4 1.4L3 11.3 3 8.5z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M21 8.5 17.5 5 14 8.5l1.4 1.4L17.5 7.8 19.6 9.9l-6.7 6.7a2 2 0 0 1-2.8 0l-1.1-1.1 1.4-1.4 1.1 1.1a.5.5 0 0 0 .7 0l6-6L21 8.5zM3 8.5 6.5 5 10 8.5 8.6 9.9 6.5 7.8 4.4 9.9l3.1 3.1-1.4 1.4L3 11.3 3 8.5z'/%3E%3C/svg%3E");
}
.assuranceCard__icon[data-assurance-icon="shield"]::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2 4 5v6c0 5 3.4 9.7 8 11 4.6-1.3 8-6 8-11V5l-8-3zm0 18c-3.3-1.2-6-4.9-6-9V6.3L12 4l6 2.3V11c0 4.1-2.7 7.8-6 9z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2 4 5v6c0 5 3.4 9.7 8 11 4.6-1.3 8-6 8-11V5l-8-3zm0 18c-3.3-1.2-6-4.9-6-9V6.3L12 4l6 2.3V11c0 4.1-2.7 7.8-6 9z'/%3E%3C/svg%3E");
}
.assuranceCard__icon[data-assurance-icon="support"]::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a8 8 0 0 0-8 8v4a4 4 0 0 0 4 4h1v-8H6a6 6 0 0 1 12 0h-3v8h1a4 4 0 0 0 4-4v-4a8 8 0 0 0-8-8zm-1 18h2v2h-2v-2z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a8 8 0 0 0-8 8v4a4 4 0 0 0 4 4h1v-8H6a6 6 0 0 1 12 0h-3v8h1a4 4 0 0 0 4-4v-4a8 8 0 0 0-8-8zm-1 18h2v2h-2v-2z'/%3E%3C/svg%3E");
}
.assuranceCard__title{
  margin:0 0 10px;
  font-weight:900;
  font-size:14px;
  letter-spacing:.08em;
  color:#0b3440;
  text-align:center;
}
.assuranceCard__text{
  margin:0;
  font-size:12px;
  line-height:1.9;
  color:rgba(11,52,64,.78);
  font-weight:800;
}

/* FAQ */
.faq{
  padding:28px 0 34px;
  background:#fff;
}
.faqList{
  margin:0 auto;
  width:min(860px, 100%);
  border-top:1px solid rgba(11,52,64,.12);
}
.faqItem{
  border-bottom:1px solid rgba(11,52,64,.12);
}
.faqItem__q{
  list-style:none;
  cursor:pointer;
  padding:14px 14px 14px 38px;
  position:relative;
  font-weight:900;
  font-size:13px;
  letter-spacing:.06em;
  color:#0b3440;
}
.faqItem__q::-webkit-details-marker{display:none}
.faqItem__q::before{
  content:"Q";
  position:absolute;
  left:12px;
  top:50%;
  width:22px;
  height:22px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(47,111,123,.96), rgba(43,101,112,.96));
  border:0;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:900;
  font-size:12px;
  letter-spacing:.08em;
  box-shadow:0 10px 18px rgba(18, 78, 90, .18);
}
.faqItem__q{
  padding-left:52px;
}
.faqItem__a{
  padding-left:52px;
}
.faqItem__q::after{
  content:"+";
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  font-weight:900;
  color:rgba(11,52,64,.55);
}
.faqItem[open] .faqItem__q::after{content:"–"}
.faqItem__a{
  padding:0 14px 14px 38px;
  font-size:12px;
  line-height:1.8;
  color:rgba(11,52,64,.72);
  font-weight:700;
}

/* Final CTA (uses provided images) */
.finalCta{
  position:relative;
  overflow:hidden;
  padding:26px 0 30px;
}
.finalCta__bg{
  position:absolute;
  inset:0;
  background:url("./assets/final-cta-bg.png");
  background-size:cover;
  background-position:center;
}
.finalCta__inner{
  position:relative;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:30px;
  align-items:center;
  min-height:260px;
}
.finalCta__visual{
  align-self:end;
}
.finalCta__visual img{
  width:100%;
  height:auto;
  display:block;
  filter:drop-shadow(0 25px 45px rgba(0,0,0,.22));
}
.finalCta__content{
  padding:26px 0 18px;
  margin: 0 auto;
}
.finalCta__title{
  margin:0 0 12px;
  font-size:18px;
  font-weight:900;
  letter-spacing:.08em;
  color:#fff;
  text-shadow:0 14px 30px rgba(0,0,0,.22);
}
.finalCta__lead{
  margin:0 0 14px;
  font-size:11px;
  line-height:1.8;
  color:rgba(255,255,255,.88);
  font-weight:700;
  text-shadow:0 12px 26px rgba(0,0,0,.18);
}

/* Footer (trace-ish) */
.brand--footer .brand__mark{color:#fff}
.brand--footer .brand__sub{color:rgba(255,255,255,.7)}
.siteFooter{
  background:#0b3440;
  color:rgba(255,255,255,.78);
  padding:20px 0 18px;
}
.siteFooter__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.siteFooter__nav{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.siteFooter__nav a{
  text-decoration:none;
  font-weight:700;
  font-size:11px;
  color:rgba(255,255,255,.78);
}
.siteFooter__bottom{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;
  justify-content:space-between;
  color:rgba(255,255,255,.55);
}

/* Responsive */
@media (max-width: 980px){
  .hero__inner{grid-template-columns:1fr; min-height:unset; padding-bottom:12px}
  .hero__title{font-size:38px}
  .hero__bg{
    background:url("./assets/hero.png");
    background-size:cover;
    background-position:center right;
  }
  .hero__bg::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, rgba(255,255,255,.70) 0%, rgba(255,255,255,.40) 52%, rgba(255,255,255,0) 100%);
    opacity:1;
    pointer-events:none;
  }
  .hero__bg::before{
    clip-path:polygon(0 0, 100% 0, 100% 58%, 0 58%);
  }
  .hero__copy{
    width:min(560px, 100%);
    position:relative;
    padding:10px 0 6px;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  .hero__copy::before{
    content:"";
    position:absolute;
    left:-16px;
    right:-16px;
    border-radius:18px;
    background:linear-gradient(90deg, rgba(255,255,255,.78) 0%, rgba(255,255,255,.55) 58%, rgba(255,255,255,0) 100%);
    backdrop-filter:blur(6px);
    pointer-events:none;
    z-index:-1;
  }
  .hero__title{
    text-shadow:0 10px 24px rgba(255,255,255,.65);
  }
  .hero__lead{
    color:rgba(11,52,64,.70);
  }
  .problemGrid{grid-template-columns:repeat(3, 1fr); gap:18px}
  .problemItem__circle{width:148px; height:148px}
  .scrollIndicator{display:none}
  .siteNav{display:none}
  .strengthItems{grid-template-columns:1fr}
  .strengthItem + .strengthItem{border-left:0; border-top:1px solid rgba(255,255,255,.18)}
  .flowRow{grid-template-columns:1fr; gap:16px}
  .flowRow > .flowItem:not(:last-child)::after,
  .flowRow > .flowItem:not(:last-child)::before{display:none}
  .flowBottom{grid-template-columns:1fr}
  .flowBottom__list{
    width:max-content;
    margin-inline:auto;
    justify-self:center;
    text-align:left;
  }
  .flowBottom__list li{
    width:max-content;
    margin-inline:auto;
  }
  .pricingGrid{grid-template-columns:1fr; gap:14px}
  .pricingCard--featured{transform:none}
  .worksGrid{grid-template-columns:1fr; gap:14px}
  .voiceGrid{grid-template-columns:1fr; gap:12px}
  .assuranceGrid{grid-template-columns:1fr; gap:12px}
  .finalCta__inner{grid-template-columns:1fr; min-height:unset}
  .finalCta__content{padding:18px 0 10px}
  .siteFooter__inner{flex-direction:column; align-items:flex-start}
  .siteFooter__bottom{flex-direction:column; gap:8px}
}
@media (max-width: 640px){
  .container{width:min(var(--container), calc(100% - 34px))}
  .hero{padding-top:24px}
  .hero__title{font-size:32px}
  .hero__copy{padding:10px 0 6px}
  .hero__copy::before{
    left:-12px;
    right:-12px;
    border-radius:16px;
  }
  .problemGrid{grid-template-columns:repeat(2, 1fr); gap:14px}
  .problemGrid .problemItem:last-child{
    grid-column:1 / -1;
    justify-self:center;
  }
  .problemItem__circle{width:140px; height:140px}
}

