
:root{
  --navy:#1a2e59;
  --navy-deep:#13264d;
  --text:#24324b;
  --muted:#6b7586;
  --line:#12c755;
  --gold:#c8a76a;
  --bg:#f5f4f2;
  --border:#e8e4dc;
  --white:#fff;
  --shadow:0 18px 40px rgba(17,31,58,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  font-family:"Noto Sans JP",system-ui,sans-serif;
  background:#fff;
  line-height:1.8;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:min(1120px, calc(100% - 48px)); margin:0 auto}
.narrow{width:min(860px, calc(100% - 48px))}
.center{text-align:center}

.site-header{
  position:fixed; inset:0 0 auto 0; z-index:30;
  background:rgba(18,31,58,.38);
  backdrop-filter: blur(6px);
  border-bottom:1px solid rgba(255,255,255,.09);
}
.header-inner{
  min-height:68px; display:flex; align-items:center; gap:18px;
}
.logo{display:flex; align-items:center; flex:0 0 auto}
.logo-image{display:block; height:28px; width:auto}
.global-nav{display:flex; gap:22px; margin-left:auto; margin-right:10px}
.global-nav a{color:rgba(255,255,255,.88); font-size:12px}
.header-actions{display:flex; gap:8px}
.menu-toggle{display:none; margin-left:auto; background:none; border:0; padding:0; width:38px; height:38px}
.menu-toggle span{display:block; height:2px; background:#fff; margin:6px 0}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:44px; padding:0 18px; border-radius:4px; border:1px solid transparent;
  font-size:12px; font-weight:700; letter-spacing:.02em; transition:.25s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-sm{min-height:34px; padding:0 12px; font-size:11px}
.btn-line{background:var(--line); color:#fff}
.btn-dark{background:rgba(17,22,35,.65); color:#fff; border-color:rgba(255,255,255,.24)}
.btn-ghost{background:rgba(17,22,35,.36); color:#fff; border-color:rgba(255,255,255,.18)}
.btn-outline{background:transparent; color:#fff; border-color:rgba(255,255,255,.32)}

.btn-panel{
  background:rgba(16, 38, 73, .46);
  border-color:rgba(255,255,255,.18);
  box-shadow:0 12px 28px rgba(7, 18, 38, .08);
}
.btn-panel:hover{
  background:rgba(16, 38, 73, .54);
}


.hero{
  position:relative; min-height:100vh; color:#fff;
  background:url("../images/hero_bg_uploaded.jpeg") 58% center/108% auto no-repeat;
}
.hero-overlay{
  position:absolute; inset:0; background:linear-gradient(to bottom, rgba(5,16,34,.10), rgba(7,20,42,.24));
}
.hero-content{
  position:relative; z-index:1;
  min-height:100vh;
  display:grid; place-items:center;
  padding-top:88px; padding-bottom:64px;
  max-width:1120px;
  text-align:left;
}

.hero-illustration{
  position:absolute;
  right:34px;
  top:50%;
  transform:translateY(-50%);
  width:clamp(142px, 12vw, 182px);
  height:auto;
  z-index:1;
  opacity:.9;
  pointer-events:none;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.18));
}
.hero-stack{
  position:relative;
  z-index:2;
}
.hero-stack{
  width:min(100%, 700px);
  margin-inline:auto;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  transform:translateY(-10px);
}

.hero-copy-panel{
  position:relative;
  width:100%;
  max-width:none;
  padding:32px 250px 28px 52px;
  background:rgba(8, 22, 45, .48);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 48px rgba(4, 10, 22, .18);
  overflow:hidden;
}
.eyebrow{
  margin:0 0 18px; color:var(--gold); font-size:10px; letter-spacing:.22em; font-weight:700;
}
.eyebrow-light{color:#d3be91}
.hero h1, h2{
  font-family:"Noto Serif JP", serif; letter-spacing:.04em;
}
.hero h1{
  margin:0 0 16px; font-size:46px; line-height:1.34; font-weight:700; white-space:normal;
  color:rgba(248,247,243,.96);
  text-shadow:0 5px 16px rgba(0,0,0,.20);
  text-wrap:balance;
}
.hero-title-line{display:block;}

.hero-keyword{
  display:inline-block;
  color:#f2d38b;
  text-shadow:0 8px 20px rgba(0,0,0,.22), 0 0 0.01px rgba(242,211,139,.8);
  letter-spacing:.06em;
}
.lead{
  max-width:30em; margin:0; color:rgba(245,244,240,.92); font-size:17px; line-height:1.68;
  letter-spacing:.01em;
  text-shadow:0 2px 8px rgba(0,0,0,.14)
}

.lead-line{
  display:block;
  white-space:nowrap;
}

.hero-actions{
  display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; justify-content:flex-start; width:100%
}
.scroll-indicator{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:11px;
  min-width:auto;
  padding:0;
  color:rgba(255,255,255,.98);
  font-size:11px;
  font-weight:700;
  letter-spacing:.42em;
  text-transform:uppercase;
  text-decoration:none;
  text-shadow:0 3px 14px rgba(7,18,38,.28);
  background:none;
  border:none;
  border-radius:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  opacity:.98;
  transition:transform .22s ease, opacity .22s ease;
}
.scroll-indicator::after{
  content:"";
  display:block;
  width:2px;
  height:62px;
  background:linear-gradient(to bottom, rgba(255,255,255,.98), rgba(255,255,255,.22));
  border-radius:999px;
}
.scroll-indicator::before{
  content:"";
  position:absolute;
  top:33px;
  width:8px;
  height:8px;
  border:1px solid rgba(255,255,255,.98);
  border-radius:999px;
  background:rgba(255,255,255,.32);
  box-shadow:0 0 0 8px rgba(255,255,255,.06);
}
.scroll-indicator:hover{
  transform:translateX(-50%) translateY(-4px);
  opacity:1;
}
.scroll-indicator:focus-visible{
  outline:2px solid rgba(199,163,92,.9);
  outline-offset:4px;
}

.section{padding:96px 0}
.section-light{background:var(--bg)}
.section-navy{background:linear-gradient(180deg, #10264e 0%, #0c1f40 100%); color:#fff}
.section h2{margin:0 0 18px; font-size:34px; line-height:1.55; color:var(--navy-deep)}
.section-navy h2{color:#fff}
.section-intro{margin:0 0 24px; color:var(--muted); font-size:14px}
.left-limit{max-width:760px}



.concern-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:26px 24px;
  margin:34px 0 0;
}
.concern-card{
  position:relative;
  background:linear-gradient(180deg, #ffffff 0%, #fcfcfa 100%);
  border:1px solid rgba(18, 46, 101, 0.10);
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 14px 34px rgba(20, 37, 78, 0.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.concern-card::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:3px;
  background:linear-gradient(90deg, rgba(213,175,102,.95), rgba(213,175,102,0));
}
.concern-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(20, 37, 78, 0.09);
}
.concern-card-image{
  position:relative;
  aspect-ratio:16 / 9;
  background:#e6ebf3;
  overflow:hidden;
}
.concern-card-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(8,18,42,0.06) 0%, rgba(8,18,42,0.16) 100%);
  pointer-events:none;
}
.concern-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1.02);
  transition:transform .5s ease;
}
.concern-card:hover .concern-card-image img{
  transform:scale(1.05);
}
.concern-card-body{
  padding:20px 24px 24px;
}
.concern-card-kicker{
  display:inline-block;
  margin-bottom:12px;
  font-family:"Noto Serif JP",serif;
  font-size:13px;
  line-height:1;
  letter-spacing:.16em;
  color:#caa35b;
}
.concern-card-body h3{
  margin:0 0 10px;
  min-height:3.05em;
  max-width:12.5em;
  font-size:18px;
  line-height:1.52;
  letter-spacing:.01em;
  color:var(--navy-deep);
  text-wrap:balance;
}
.concern-card-body p{
  margin:0;
  max-width:23em;
  font-size:13px;
  line-height:1.8;
  color:#67748f;
}
.concern-card--01 .concern-card-image img{
  filter:saturate(.86) contrast(1.03) brightness(.93);
  object-position:center 34%;
}
.concern-card--01 .concern-card-image::after{
  background:linear-gradient(180deg, rgba(14,28,56,0.10) 0%, rgba(14,28,56,0.20) 100%);
}
.concern-card--02 .concern-card-image img{
  filter:saturate(.88) brightness(.97) contrast(1.01);
  object-position:center 52%;
}
.concern-card--02 .concern-card-image::after{
  background:linear-gradient(180deg, rgba(21,40,76,0.08) 0%, rgba(21,40,76,0.16) 100%);
}
.concern-card--03 .concern-card-image img{
  filter:saturate(.90) brightness(.98) contrast(1.01);
  object-position:center 30%;
}
.concern-card--03 .concern-card-image::after{
  background:linear-gradient(180deg, rgba(18,42,82,0.06) 0%, rgba(18,42,82,0.14) 100%);
}
.concern-card--04 .concern-card-image img{
  filter:saturate(.84) brightness(.95) contrast(1.02);
  object-position:center 46%;
}
.concern-card--04 .concern-card-image::after{
  background:linear-gradient(180deg, rgba(18,42,82,0.08) 0%, rgba(18,42,82,0.17) 100%);
}
.concern-card--05 .concern-card-image img{
  filter:saturate(.90) brightness(.98) contrast(1.00);
  object-position:center 40%;
}
.concern-card--05 .concern-card-image::after{
  background:linear-gradient(180deg, rgba(18,42,82,0.06) 0%, rgba(18,42,82,0.14) 100%);
}
.concern-card--06 .concern-card-image img{
  filter:saturate(.90) brightness(.96) contrast(1.02);
  object-position:center 26%;
}
.concern-card--06 .concern-card-image::after{
  background:linear-gradient(180deg, rgba(18,42,82,0.08) 0%, rgba(18,42,82,0.16) 100%);
}



@media (max-width: 980px){
  .concern-card-body{
    padding:18px 18px 22px;
  }
  .concern-card-body h3{
    min-height:auto;
    font-size:17px;
  }
}


.trust-points{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  align-items:stretch;
  margin:22px 0 8px;
}
.trust-point{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:68px;
  padding:14px 18px 14px 16px;
  border:1px solid rgba(186, 153, 83, 0.34);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(251,248,241,0.98) 100%);
  box-shadow:0 14px 30px rgba(20, 37, 78, 0.06);
}
.trust-point::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  border-radius:16px 0 0 16px;
  background:linear-gradient(180deg, rgba(201,169,102,0.95) 0%, rgba(168,134,67,0.88) 100%);
}
.trust-point-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:50%;
  background:linear-gradient(180deg, rgba(208,177,111,0.98) 0%, rgba(174,138,67,0.95) 100%);
  color:#fff;
  font-size:13px;
  font-weight:700;
  flex:0 0 36px;
  box-shadow:0 8px 18px rgba(160, 123, 56, 0.24);
}
.trust-point-text{
  color:var(--navy);
  font-size:14px;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.45;
}
@media (max-width: 900px){
  .trust-points{
    grid-template-columns:1fr;
    gap:10px;
  }
  .trust-point{
    width:100%;
    min-height:60px;
    border-radius:14px;
  }
  .trust-point::before{
    border-radius:14px 0 0 14px;
  }
}


/* Refined trust point icons */
.trust-point-icon{
  position:relative;
  overflow:hidden;
  text-indent:-9999px;
}
.trust-point-icon::before,
.trust-point-icon::after{
  content:"";
  position:absolute;
  display:block;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

.trust-point-icon.icon-anon::before{
  inset:7px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M7.5 9.2c0 1.95 1.43 3.3 3.08 3.3 1.7 0 3.12-1.35 3.12-3.3 0-1.9-1.42-3.2-3.12-3.2-1.65 0-3.08 1.3-3.08 3.2Z' stroke='%23ffffff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/><path d='M5.4 17.6c1.1-2.05 3.04-3.1 5.18-3.1 2.16 0 4.1 1.05 5.22 3.1' stroke='%23ffffff' stroke-width='1.9' stroke-linecap='round'/><path d='M15.8 6.4h2.9a1.3 1.3 0 0 1 1.3 1.3v5.15a1.3 1.3 0 0 1-1.3 1.3h-1.1l-1.75 1.55v-1.55h-.05' stroke='%23ffffff' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.trust-point-icon.icon-secret::before{
  inset:7px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M12 4.4 18.1 6.9v4.4c0 4.05-2.45 6.9-6.1 8.3-3.65-1.4-6.1-4.25-6.1-8.3V6.9L12 4.4Z' stroke='%23ffffff' stroke-width='1.8' stroke-linejoin='round'/><rect x='9' y='10.3' width='6' height='4.9' rx='1.2' stroke='%23ffffff' stroke-width='1.8'/><path d='M10.2 10.25V8.95a1.8 1.8 0 1 1 3.6 0v1.3' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round'/></svg>");
}
.trust-point-icon.icon-guide::before{
  inset:7px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M7.1 5.7h8.1a1.7 1.7 0 0 1 1.7 1.7v9.2a1.7 1.7 0 0 1-1.7 1.7H8.7l-2.6 1.8v-12.7a1.7 1.7 0 0 1 1-1.57' stroke='%23ffffff' stroke-width='1.8' stroke-linejoin='round'/><path d='m9.3 10.2 1.5 1.5 3.8-3.9' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/><path d='M9.3 14.6h5.5' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round'/></svg>");
}


.concerns-cta .btn-line-prominent{
  min-height:56px;
  padding:0 28px;
  font-size:15px;
  letter-spacing:.04em;
  border-radius:8px;
  box-shadow:0 14px 30px rgba(6, 180, 83, 0.28), 0 6px 14px rgba(8, 25, 54, 0.10);
}
.concerns-cta .btn-line-prominent:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(6, 180, 83, 0.34), 0 8px 16px rgba(8, 25, 54, 0.12);
}
@media (max-width: 767px){
  .concerns-cta .btn-line-prominent{
    min-height:52px;
    width:min(100%, 320px);
    padding:0 20px;
    font-size:14px;
  }
}


/* Service / debt renovation section */
.section-navy{
  padding-top:110px;
  padding-bottom:104px;
}
.service-head{
  max-width:820px;
  margin-bottom:34px;
}
.service-head h2{
  margin-bottom:20px;
  line-height:1.45;
}
.service-head p{
  margin:0;
  max-width:760px;
  font-size:15px;
  line-height:2.0;
  color:rgba(255,255,255,.82);
}
.service-cards{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  margin-top:36px;
}
.service-card{
  position:relative;
  min-height:268px;
  padding:32px 28px 30px;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.045) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 12px 28px rgba(3, 10, 24, .16);
}
.service-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:linear-gradient(180deg, rgba(212,177,108,1) 0%, rgba(180,141,74,.82) 100%);
}
.service-card::after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid rgba(255,255,255,.04);
  pointer-events:none;
}
.service-card .num{
  display:inline-flex;
  align-items:flex-end;
  gap:10px;
  margin-bottom:26px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,.14);
  font-family:"Noto Serif JP", serif;
  color:#d3af6d;
}
.service-card .num em{
  font-style:normal;
  font-size:42px;
  line-height:1;
  letter-spacing:.02em;
}
.service-card .num small{
  display:block;
  margin-bottom:5px;
  font-family:"Inter", sans-serif;
  font-size:10px;
  line-height:1;
  letter-spacing:.34em;
  color:rgba(211,175,109,.85);
}
.service-card h3{
  margin:0 0 14px;
  font-size:28px;
  line-height:1.5;
  letter-spacing:.01em;
  color:#fff;
}
.service-card p{
  margin:0;
  font-size:14px;
  line-height:1.9;
  color:rgba(255,255,255,.84);
}
@media (max-width: 980px){
  .section-navy{
    padding-top:90px;
    padding-bottom:88px;
  }
  .service-cards{
    grid-template-columns:1fr;
  }
  .service-card{
    min-height:auto;
    padding:26px 22px 24px;
  }
  .service-card h3{
    font-size:24px;
  }
}


/* Rebuild section */
.rebuild-section {
  background:
    linear-gradient(180deg, rgba(248, 248, 246, 1) 0%, rgba(255, 255, 255, 1) 100%);
  padding-top: 96px;
  padding-bottom: 104px;
}

.rebuild-head {
  max-width: 900px;
  margin: 0 auto 34px;
}

.rebuild-head h2 {
  margin-bottom: 18px;
}

.rebuild-head .section-intro {
  max-width: 820px;
}

.rebuild-strengths-head {
  display: flex;
  justify-content: center;
  margin-bottom: 28px;
}

.mini-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border: 1px solid rgba(189, 157, 92, 0.35);
  color: #8e6a26;
  background: rgba(189, 157, 92, 0.08);
  border-radius: 999px;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

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

.rebuild-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 36px 30px 32px;
  border-radius: 24px;
  background:
    linear-gradient(180deg, rgba(11, 28, 52, 0.98) 0%, rgba(18, 38, 70, 0.98) 100%);
  color: #fff;
  box-shadow: 0 20px 48px rgba(8, 18, 32, 0.14);
  overflow: hidden;
}

.rebuild-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, rgba(201, 171, 106, 1) 0%, rgba(146, 112, 47, 1) 100%);
}

.rebuild-icon {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  margin-bottom: 20px;
  border: 1px solid rgba(201, 171, 106, 0.45);
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.22), rgba(201,171,106,0.08));
  position: relative;
}

.rebuild-card h3 {
  margin: 0 0 12px;
  min-height: calc(1.32em * 2);
  color: #fff;
  font-size: 1.72rem;
  line-height: 1.38;
  letter-spacing: 0.02em;
  font-weight: 700;
}

.rebuild-card p {
  margin: 0;
  color: rgba(255,255,255,0.88);
  font-size: 1.14rem;
  line-height: 1.9;
  letter-spacing: 0.01em;
  text-wrap: pretty;
}

.icon-decode::before,
.icon-decode::after,
.icon-portfolio::before,
.icon-portfolio::after,
.icon-area::before,
.icon-area::after {
  content: "";
  position: absolute;
}

.icon-decode::before {
  left: 16px;
  top: 15px;
  width: 26px;
  height: 20px;
  border: 2px solid rgba(255,255,255,0.9);
  border-radius: 4px;
}
.icon-decode::after {
  left: 22px;
  top: 21px;
  width: 14px;
  height: 2px;
  background: rgba(201,171,106,1);
  box-shadow: 0 6px 0 rgba(201,171,106,0.88), 0 12px 0 rgba(201,171,106,0.76);
}

.icon-portfolio::before {
  left: 17px;
  top: 18px;
  width: 8px;
  height: 20px;
  background: rgba(255,255,255,0.92);
  box-shadow: 11px -6px 0 rgba(255,255,255,0.92), 22px -12px 0 rgba(255,255,255,0.92);
}
.icon-portfolio::after {
  left: 14px;
  bottom: 15px;
  width: 30px;
  height: 2px;
  background: rgba(201,171,106,1);
}

.icon-area::before {
  left: 19px;
  top: 13px;
  width: 20px;
  height: 28px;
  border: 2px solid rgba(255,255,255,0.9);
  border-radius: 12px 12px 12px 12px / 14px 14px 18px 18px;
  clip-path: polygon(50% 100%, 0 58%, 0 0, 100% 0, 100% 58%);
}
.icon-area::after {
  left: 25px;
  top: 19px;
  width: 8px;
  height: 8px;
  background: rgba(201,171,106,1);
  border-radius: 50%;
}

@media (max-width: 960px) {
  .rebuild-grid {
    grid-template-columns: 1fr;
  }
  .rebuild-section {
    padding-top: 72px;
    padding-bottom: 80px;
  }
}



/* Rebuild section - refined wide single-column cards */
.rebuild-section .container.narrow{
  max-width: 1120px;
}

.rebuild-head{
  max-width: 980px;
  margin: 0 auto 40px;
}

.rebuild-head .section-intro{
  max-width: 960px;
}

.rebuild-strengths-head{
  margin: 2px 0 26px;
}

.rebuild-grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  max-width: 980px;
  margin: 0 auto;
}

.rebuild-card{
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  align-items: center;
  gap: 0;
  padding: 0;
  border-radius: 28px;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(9, 24, 46, 0.985) 0%, rgba(13, 34, 63, 0.985) 100%);
  border: 1px solid rgba(201, 171, 106, 0.22);
  box-shadow: 0 18px 36px rgba(9, 19, 33, 0.10);
}

.rebuild-card::before{
  width: 5px;
}

.rebuild-card-index{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  align-self: stretch;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.02) 100%);
  color: rgba(201, 171, 106, 0.96);
  font-family: "Noto Serif JP", serif;
  font-size: 3.8rem;
  line-height: 1;
  letter-spacing: 0.04em;
  font-weight: 700;
  border-right: 1px solid rgba(201, 171, 106, 0.16);
}

.rebuild-card-copy{
  padding: 30px 40px 30px 36px;
}

.rebuild-card h3{
  min-height: 0;
  margin: 0 0 12px;
  font-size: 2.6rem;
  line-height: 1.5;
  letter-spacing: 0.01em;
  font-weight: 700;
}

.rebuild-card p{
  margin: 0;
  max-width: 56ch;
  color: rgba(255,255,255,0.84);
  font-size: 1.42rem;
  line-height: 1.95;
  letter-spacing: 0.01em;
}

.rebuild-icon{
  display: none !important;
}

@media (max-width: 900px){
  .rebuild-grid{
    max-width: 100%;
  }
  .rebuild-card{
    grid-template-columns: 96px minmax(0, 1fr);
  }
  .rebuild-card-index{
    font-size: 2.8rem;
  }
  .rebuild-card-copy{
    padding: 24px 24px 24px 22px;
  }
  .rebuild-card h3{
    font-size: 2.2rem;
    line-height: 1.46;
  }
  .rebuild-card p{
    font-size: 1.45rem;
    line-height: 1.9;
    max-width: none;
  }
}

@media (max-width: 640px){
  .rebuild-card{
    grid-template-columns: 1fr;
  }
  .rebuild-card-index{
    justify-content: flex-start;
    padding: 18px 22px 0;
    border-right: 0;
    min-height: auto;
    background: transparent;
    font-size: 2.3rem;
  }
  .rebuild-card-copy{
    padding: 10px 22px 22px;
  }
  .rebuild-card h3{
    font-size: 2rem;
    margin-bottom: 8px;
    line-height: 1.42;
  }
  .rebuild-card p{
    font-size: 1.36rem;
    line-height: 1.78;
  }
}


/* v48 rebuild strengths refinement */
.rebuild-strengths-head{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin: 2px 0 26px;
  text-align:center;
}

.rebuild-strengths-kicker{
  position:relative;
  margin:0 0 10px;
  padding:0 12px;
  color:rgba(156,122,58,0.78);
  font-size:0.88rem;
  font-weight:600;
  letter-spacing:0.20em;
  line-height:1;
}

.rebuild-strengths-kicker::before,
.rebuild-strengths-kicker::after{
  content:"";
  position:absolute;
  top:50%;
  width:18px;
  height:1px;
  background:rgba(156,122,58,0.26);
}

.rebuild-strengths-kicker::before{ right:100%; }
.rebuild-strengths-kicker::after{ left:100%; }

.rebuild-strengths-title{
  margin:0;
  color:#102948;
  font-family:"Noto Serif JP", serif;
  font-size:34px;
  font-weight:700;
  letter-spacing:0.08em;
  line-height:1.55;
}

.rebuild-card{
  grid-template-columns: 120px minmax(0, 1fr);
  max-width: 1080px;
  margin: 0 auto;
}

.rebuild-card-index{
  font-size:2.7rem;
}

.rebuild-card-copy{
  padding: 24px 38px 22px 30px;
}

.rebuild-card h3{
  margin:0 0 8px;
  font-size:1.64rem;
  line-height:1.4;
  letter-spacing:0.01em;
  font-weight:700;
}

.rebuild-card p{
  max-width: 72ch;
  color: rgba(255,255,255,0.80);
  font-size:0.98rem;
  line-height:1.68;
  letter-spacing:0.006em;
}

@media (max-width: 900px){
  .rebuild-strengths-head{
    margin: 0 0 24px;
  }
  .rebuild-strengths-title{
    font-size:2.6rem;
  }
  .rebuild-card{
    grid-template-columns: 96px minmax(0, 1fr);
  }
  .rebuild-card-index{
    font-size:2.35rem;
  }
  .rebuild-card-copy{
    padding:24px 26px 24px 22px;
  }
  .rebuild-card h3{
    font-size:1.54rem;
    line-height:1.4;
  }
  .rebuild-card p{
    font-size:0.96rem;
    line-height:1.7;
    max-width:none;
  }
}

@media (max-width: 640px){
  .rebuild-strengths-kicker{
    font-size:1.05rem;
    letter-spacing:0.22em;
  }
  .rebuild-strengths-kicker::before,
  .rebuild-strengths-kicker::after{
    width:18px;
  }
  .rebuild-strengths-title{
    font-size:2.3rem;
  }
  .rebuild-card-index{
    font-size:1.95rem;
  }
  .rebuild-card h3{
    font-size:1.44rem;
    line-height:1.38;
  }
  .rebuild-card p{
    font-size:1.08rem;
    line-height:1.68;
  }
}

.rebuild-strengths-head{
  flex-direction:column;
  align-items:center;
  gap:6px;
  margin:20px 0 26px;
}


/* v57 strengths heading refinement */
.rebuild-strengths-head{
  margin: 6px 0 22px;
  gap: 6px;
}

.rebuild-strengths-kicker{
  margin: 0 0 8px;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.24em;
  color: rgba(156, 122, 58, 0.66);
}

.rebuild-strengths-kicker::before,
.rebuild-strengths-kicker::after{
  width: 14px;
  background: rgba(156, 122, 58, 0.18);
}

.rebuild-strengths-title{
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.38;
}

.rebuild-grid{
  gap: 16px;
}

.rebuild-card{
  max-width: 1120px;
}

@media (max-width: 900px){
  .rebuild-strengths-head{
    margin: 4px 0 20px;
    gap: 6px;
  }
  .rebuild-strengths-kicker{
    font-size: 0.72rem;
    letter-spacing: 0.22em;
  }
  .rebuild-strengths-title{
    font-size: 2.6rem;
    line-height: 1.34;
    letter-spacing: 0.1em;
  }
  .rebuild-grid{
    gap: 14px;
  }
}

@media (max-width: 640px){
  .rebuild-strengths-head{
    margin: 2px 0 18px;
  }
  .rebuild-strengths-title{
    line-height: 1.3;
  }
  .rebuild-grid{
    gap: 12px;
  }
}


/* v59 office section refinement */
.office-section{
  padding-top: 104px;
  padding-bottom: 112px;
  background:
    linear-gradient(180deg, rgba(248,250,252,0.96) 0%, rgba(255,255,255,1) 28%, rgba(249,250,252,1) 100%);
}
.office-wrap{
  max-width: 1120px;
}
.office-copy{
  max-width: 860px;
  margin: 0 auto 32px;
  text-align: center;
  text-wrap: balance;
}
.office-copy h2{
  margin-bottom: 18px;
  line-height: 1.5;
}
.office-copy .section-intro{
  max-width: 700px;
  margin: 0 auto;
  font-size: 15px;
  line-height: 2;
  color: #5f6f88;
}
.office-main{
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  gap: 30px;
  align-items: stretch;
  margin: 34px 0 52px;
}
.office-photo{
  position: relative;
  min-height: 420px;
  border-radius: 30px;
  overflow: hidden;
  background: #dfe6ef;
  box-shadow: 0 20px 48px rgba(17, 33, 58, 0.10);
}
.office-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(12,27,52,0.04) 0%, rgba(12,27,52,0.18) 100%);
  pointer-events:none;
}
.office-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.office-points{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding: 34px 34px 32px;
  border: 1px solid rgba(17, 38, 74, 0.10);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(250,251,253,0.96) 100%);
  box-shadow: 0 16px 40px rgba(17, 33, 58, 0.07);
}
.office-points h3{
  margin: 0 0 20px;
  font-family:"Noto Serif JP", serif;
  font-size: 28px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: var(--navy-deep);
}
.office-points ul{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
}
.office-points li{
  position: relative;
  padding: 14px 16px 14px 46px;
  border-radius: 16px;
  background: rgba(16, 41, 72, 0.035);
  color: #334763;
  font-size: 14px;
  line-height: 1.8;
}
.office-points li::before{
  content:"";
  position:absolute;
  left:16px;
  top:18px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,1) 0 30%, rgba(201,171,106,0) 32%),
    linear-gradient(180deg, rgba(201,171,106,0.98) 0%, rgba(162,124,58,0.94) 100%);
  box-shadow: 0 6px 14px rgba(170,132,62,0.18);
}
.office-location-head{
  max-width: 760px;
  margin: 0 auto 24px;
  text-align: center;
}
.office-location-head h3{
  margin: 0 0 10px;
  font-family: "Noto Serif JP", serif;
  font-size: 34px;
  line-height: 1.45;
  letter-spacing: 0.04em;
  color: var(--navy-deep);
}
.office-location-head p{
  margin: 0;
  color: #68798f;
  font-size: 14px;
  line-height: 1.9;
}
.office-location-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
  margin-top: 28px;
  align-items: stretch;
}
.location-card{
  --loc-image-position: center center;
  --loc-image-filter: brightness(0.99) saturate(0.96) contrast(1.02);
  display:flex;
  flex-direction:column;
  height:100%;
  overflow:hidden;
  border-radius: 22px;
  border: 1px solid rgba(17, 38, 74, 0.09);
  background: linear-gradient(180deg, rgba(255,255,255,0.985) 0%, rgba(249,250,252,0.985) 100%);
  box-shadow: 0 16px 36px rgba(17, 33, 58, 0.06);
}
.location-card-image{
  position:relative;
  height: 332px;
  min-height: 332px;
  overflow:hidden;
  background:#dfe6ef;
}
.location-card-image::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(11,28,52,0.03) 0%, rgba(11,28,52,0.11) 100%);
  pointer-events:none;
}
.location-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position: var(--loc-image-position);
  filter: var(--loc-image-filter);
  display:block;
}
.location-card-body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  padding: 19px 24px 24px;
}
.location-card-body > *{
  max-width: 35ch;
}
.location-card-body > h3,
.location-card-body > .location-label{
  max-width: none;
}
.location-card-tokyo{
  --loc-image-position: center 0%;
  --loc-image-filter: brightness(1.02) saturate(0.94) contrast(1.01);
}
.location-card-yokohama{
  --loc-image-position: center 50%;
  --loc-image-filter: brightness(1.01) saturate(0.93) contrast(1.01);
}
.location-card-saitama{
  --loc-image-position: center 0%;
  --loc-image-filter: brightness(1.00) saturate(0.92) contrast(1.02);
}
.location-card-chiba{
  --loc-image-position: center 16%;
  --loc-image-filter: brightness(1.01) saturate(0.92) contrast(1.02);
}
.location-label{
  margin: 0 0 10px;
  color: #a17a36;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.24em;
}
.location-card-body h3{
  margin: 0 0 16px;
  color: var(--navy-deep);
  font-size: 24px;
  line-height: 1.45;
  letter-spacing: 0.02em;
}
.location-address,
.location-access{
  padding: 15px 16px;
  border-radius: 14px;
  background: rgba(16, 41, 72, 0.035);
}
.location-access{
  margin-top: 12px;
}

.location-address,
.location-access{
  max-width: none;
  width: 100%;
}
.location-address p,
.location-access li{
  max-width: none;
  overflow-wrap: anywhere;
}

.location-block-label{
  margin: 0 0 8px;
  color: #a17a36;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.22em;
}
.location-address p,
.location-access li{
  margin: 0;
  color: #45576f;
  font-size: 13px;
  line-height: 1.78;
  text-wrap: pretty;
}

.location-access li{
  text-wrap: pretty;
}
.location-access .nowrap{
  white-space: nowrap;
}

.location-access ul{
  margin: 0;
  padding-left: 1.15em;
}
.location-access li + li{
  margin-top: 2px;
}
@media (max-width: 980px){
  .office-section{
    padding-top: 88px;
    padding-bottom: 92px;
  }
  .office-copy{
    margin-bottom: 28px;
  }
  .office-main{
    grid-template-columns: 1fr;
    gap: 20px;
    margin: 28px 0 42px;
  }
  .office-photo{
    min-height: 320px;
    border-radius: 24px;
  }
  .office-points{
    padding: 28px 24px 24px;
    border-radius: 22px;
  }
  .office-points h3{
    font-size: 24px;
  }
  .office-location-head h3{
    font-size: 30px;
  }
  .office-location-grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .location-card-image{
    height: 300px;
    min-height: 300px;
  }
}
@media (max-width: 640px){
  .office-copy .section-intro{
    font-size: 14px;
    line-height: 1.9;
  }
  .office-points h3{
    font-size: 22px;
  }
  .office-points li{
    font-size: 13px;
    padding: 13px 14px 13px 42px;
  }
  .office-location-head h3{
    font-size: 26px;
  }
  .location-card-body{
    padding: 18px 18px 20px;
  }
  .location-card-body h3{
    font-size: 21px;
  }
}


/* v60: remove office photo and rebalance office points block */
.office-main{
  display:block;
  max-width: 860px;
  margin: 34px auto 52px;
}
.office-points{
  max-width: 860px;
  margin: 0 auto;
  padding: 38px 42px 36px;
}
.office-points h3{
  font-size: 30px;
  margin-bottom: 22px;
}
.office-points ul{
  gap: 14px;
}
.office-points li{
  font-size: 15px;
  line-height: 1.85;
}
@media (max-width: 900px){
  .office-main{
    max-width: none;
    margin: 28px 0 46px;
  }
  .office-points{
    max-width: none;
    padding: 28px 24px 26px;
  }
  .office-points h3{
    font-size: 24px;
  }
}


/* v68 office info boxes width + height balance */
.location-card-body{
  padding: 19px 20px 24px;
}
.location-card-body > *{
  max-width: none;
}
.location-card-body .location-label,
.location-card-body h3{
  max-width: none;
}
.location-card-body .location-address,
.location-card-body .location-access{
  width: 100%;
  max-width: 100% !important;
}
.location-address,
.location-access{
  padding: 16px 20px;
}
.location-address{
  min-height: 112px;
}
.location-access{
  min-height: 146px;
}
.location-address p,
.location-access li{
  overflow-wrap: normal;
  word-break: normal;
}
@media (max-width: 980px){
  .location-card-body{
    padding: 18px 18px 22px;
  }
  .location-address,
  .location-access{
    padding: 15px 17px;
  }
  .location-address,
  .location-access{
    min-height: 0;
  }
}


.section-inline-cta{
  margin-top:34px;
}
.section-inline-cta-button{
  min-width:320px;
}
.section-inline-cta-note{
  margin:12px 0 0;
  font-size:12px;
  letter-spacing:.04em;
  color:var(--muted);
}
.rebuild-inline-cta{
  margin-top:40px;
}
.rebuild-inline-cta .section-inline-cta-note{
  color:rgba(255,255,255,.72);
}
.rebuild-inline-cta .section-inline-cta-button{
  box-shadow:0 16px 34px rgba(6, 180, 83, .30), 0 10px 22px rgba(5, 16, 34, .18);
}
@media (max-width: 767px){
  .section-inline-cta{
    margin-top:26px;
  }
  .section-inline-cta-button{
    width:min(100%, 320px);
    min-width:0;
  }
}


/* Cases section */
.cases-section{
  background:#eef2f8;
  padding-top:104px;
  padding-bottom:112px;
}
.case-wrap{
  max-width:1120px;
}
.case-head{
  max-width:820px;
  margin:0 auto 38px;
}
.case-head h2{
  margin-bottom:16px;
}
.case-intro{
  max-width:720px;
  margin:0 auto;
  color:rgba(232,236,244,.78);
  font-size:15px;
  line-height:1.95;
}
.case-panel{
  position:relative;
  padding:38px 40px 36px;
  border-radius:28px;
  border:1px solid rgba(214,223,241,.14);
  background:
    linear-gradient(180deg, rgba(255,255,255,.09) 0%, rgba(255,255,255,.04) 100%);
  box-shadow:0 24px 56px rgba(3,10,25,.22);
}
.case-panel::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  border-radius:28px 0 0 28px;
  background:linear-gradient(180deg, rgba(205,174,103,.95) 0%, rgba(205,174,103,.35) 100%);
}
.case-meta{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:22px;
}
.case-label{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 13px;
  border-radius:999px;
  border:1px solid rgba(205,174,103,.42);
  background:rgba(205,174,103,.08);
  color:#dbc288;
  font-size:11px;
  font-weight:700;
  letter-spacing:.24em;
}
.case-tag{
  color:rgba(235,241,252,.78);
  font-size:12px;
  letter-spacing:.12em;
}
.case-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:36px;
  align-items:start;
}
.case-main{
  min-width:0;
}
.case-copy{
  margin:0 0 16px;
  max-width:none;
  font-family:"Noto Serif JP", serif;
  font-size:29px;
  line-height:1.42;
  letter-spacing:.03em;
  color:rgba(250,250,248,.97);
}
.case-copy span{
  display:block;
  white-space:nowrap;
}
.case-desc{
  margin:0 0 24px;
  max-width:36em;
  color:rgba(235,240,248,.82);
  font-size:15px;
  line-height:1.9;
}
.case-points{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.case-point{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:128px;
  padding:18px 18px 18px;
  border-radius:18px;
  border:1px solid rgba(214,223,241,.12);
  background:rgba(255,255,255,.045);
}
.case-point-key{
  display:block;
  margin-bottom:8px;
  color:#d8bf84;
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
}
.case-point p{
  margin:0;
  max-width:20em;
  color:rgba(244,246,250,.9);
  font-size:13px;
  line-height:1.75;
}
.case-side{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.case-stats{
  display:grid;
  grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);
  align-items:stretch;
  gap:14px;
  padding:18px;
  border-radius:24px;
  border:1px solid rgba(214,223,241,.12);
  background:rgba(10,23,47,.32);
}
.stat-box{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:146px;
  padding:20px 18px 22px;
  border-radius:18px;
  border:1px solid rgba(214,223,241,.14);
  background:rgba(255,255,255,.06);
  text-align:center;
}
.stat-box span{
  margin-bottom:11px;
  color:rgba(234,239,247,.72);
  font-size:10px;
  font-weight:700;
  letter-spacing:.22em;
}
.stat-box strong{
  color:rgba(251,251,249,.98);
  font-size:31px;
  line-height:1.35;
  letter-spacing:.02em;
}
.stat-box.gold{
  background:linear-gradient(180deg, rgba(198,165,95,.18) 0%, rgba(198,165,95,.08) 100%);
  border-color:rgba(198,165,95,.3);
}
.stat-box.gold span{
  color:#ead9b0;
}
.stat-arrow{
  align-self:center;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(205,174,103,.12);
  color:#d5bd86;
  font-size:24px;
  line-height:1;
}
.case-foot{
  padding:15px 18px;
  border-radius:14px;
  border:1px solid rgba(214,223,241,.1);
  background:rgba(255,255,255,.05);
  color:rgba(241,244,250,.9);
  font-size:14px;
  line-height:1.8;
  text-align:center;
}
@media (max-width: 980px){
  .case-grid{
    grid-template-columns:1fr;
  }
  .case-copy{
    font-size:27px;
    max-width:none;
  }
  .case-stats{
    grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);
    padding:14px;
  }
}
@media (max-width: 760px){
  .cases-section{
    padding-top:84px;
    padding-bottom:92px;
  }
  .case-panel{
    padding:26px 22px;
    border-radius:20px;
  }
  .case-panel::before{
    width:4px;
    border-radius:20px 0 0 20px;
  }
  .case-meta{
    flex-wrap:wrap;
    gap:8px;
  }
  .case-copy{
    font-size:23px;
    line-height:1.66;
    max-width:none;
  }
  .case-intro,
  .case-desc{
    font-size:14px;
    line-height:1.85;
  }
  .case-points{
    grid-template-columns:1fr;
  }
  .case-stats{
    grid-template-columns:1fr;
    gap:12px;
  }
  .stat-arrow{
    justify-self:center;
    transform:rotate(90deg);
  }
  .stat-box{
    min-height:auto;
  }
  .stat-box strong{
    font-size:24px;
  }
}


/* v79 flow section refined */
.flow-section{
  background:
    radial-gradient(circle at top right, rgba(202,163,91,.08), transparent 36%),
    linear-gradient(180deg, #f8fafc 0%, #f3f6fb 100%);
}
.flow-wrap{
  width: min(1320px, calc(100% - 48px));
  max-width: none;
}
.flow-grid{
  gap: 16px;
}
.flow-section .eyebrow{
  text-align:center;
}
.flow-section h2{
  text-align:center;
  margin-bottom: 18px;
}
.flow-intro{
  max-width: 940px;
  margin: 0 auto 42px;
  color: #5d6c83;
  font-size: 15px;
  line-height: 1.95;
  text-align: center;
}

.flow-intro .flow-line,
.flow-note-box .flow-note-line{
  display:block;
  white-space: nowrap;
}
.flow-intro .flow-line + .flow-line{
  margin-top: 2px;
}
.flow-note-box{
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
.flow-note-box .flow-note-line + .flow-note-line{
  margin-top: 2px;
}

.flow-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
  margin-top: 14px;
}
.flow-step{
  position: relative;
  padding: 26px 24px 24px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(248,250,253,.96) 100%);
  border: 1px solid rgba(17, 43, 86, 0.08);
  box-shadow: 0 16px 36px rgba(15, 31, 63, 0.07);
}
.flow-step:not(:last-child)::after{
  content: "→";
  position: absolute;
  top: 50%;
  right: -15px;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 700;
  color: #9e7a3f;
  background: rgba(202,163,91,.12);
  border: 1px solid rgba(202,163,91,.22);
  box-shadow: 0 8px 18px rgba(15, 31, 63, 0.06);
  z-index: 2;
}
.flow-step-badge{
  margin-bottom: 16px;
}
.step-no{
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(202,163,91,.10);
  border: 1px solid rgba(202,163,91,.24);
  color: #a17836;
  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .16em;
}
.flow-step-sub{
  margin: 0 0 6px;
  color: #9b7a42;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
}
.flow-step h3{
  margin: 0 0 10px;
  color: #10264e;
  font-size: 23px;
  line-height: 1.45;
  letter-spacing: .02em;
}
.flow-step p:last-child{
  margin: 0;
  color: #576880;
  font-size: 14px;
  line-height: 1.85;
  text-wrap: pretty;
}

.flow-step p .flow-body-line{
  display:block;
  white-space: nowrap;
}
.flow-step p .flow-body-line + .flow-body-line{
  margin-top: 2px;
}

.flow-note{
  max-width: 820px;
  margin: 30px auto 0;
}
.flow-note-box{
  padding: 18px 24px;
  border-radius: 18px;
  background: rgba(16, 38, 78, 0.05);
  border: 1px solid rgba(16, 38, 78, 0.08);
  color: #41526a;
  font-size: 14px;
  line-height: 1.85;
  text-align: center;
}
.flow-cta{
  margin-top: 32px;
}
@media (max-width: 1080px){
  .flow-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .flow-step:nth-child(2)::after{
    display: none;
  }
}
@media (max-width: 767px){
  .flow-intro{
    margin-bottom: 28px;
    font-size: 14px;
    line-height: 1.9;
  }
  .flow-grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .flow-step{
    padding: 22px 18px 20px;
    border-radius: 18px;
  }
  .flow-step:not(:last-child)::after{
    content: "↓";
    top: auto;
    right: 50%;
    bottom: -18px;
    transform: translateX(50%);
  }
  .flow-step h3{
    font-size: 20px;
  }
  .flow-step p .flow-body-line{
    white-space: normal;
  }
  .flow-note-box{
    padding: 16px 18px;
    font-size: 13px;
    line-height: 1.8;
  }
}


@media (max-width: 900px){
  .flow-intro{
    max-width: 100%;
  }
  .flow-intro .flow-line,
  .flow-note-box .flow-note-line{
    white-space: normal;
  }
  .flow-note-box{
    max-width: 100%;
  }
}


/* FAQ section */
.faq-section{
  background:
    linear-gradient(180deg, #f8fbff 0%, #f4f7fb 100%);
}
.faq-narrow{
  max-width: 960px;
}
.faq-section h2{
  margin-bottom: 14px;
  text-align: center;
}
.faq-intro{
  max-width: 760px;
  margin: 0 auto 34px;
  color: #58697f;
  font-size: 15px;
  line-height: 1.95;
  text-align: center;
}
.faq-list{
  display: grid;
  gap: 16px;
}
.faq-item{
  border: 1px solid rgba(16,38,78,.10);
  border-radius: 20px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 16px 36px rgba(16,38,78,.06);
  overflow: hidden;
}
.faq-item[open]{
  border-color: rgba(16,38,78,.16);
  box-shadow: 0 18px 40px rgba(16,38,78,.08);
}
.faq-item summary{
  list-style: none;
  display: grid;
  grid-template-columns: 40px minmax(0,1fr) 38px;
  align-items: center;
  column-gap: 18px;
  padding: 22px 28px;
  cursor: pointer;
}
.faq-item summary::before{
  content: "Q";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(202,163,91,.28);
  background: linear-gradient(180deg, rgba(202,163,91,.12), rgba(202,163,91,.04));
  color: #9b7134;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .08em;
}
.faq-item summary::-webkit-details-marker{
  display:none;
}
.faq-question{
  color: #10264e;
  font-size: 17px;
  line-height: 1.55;
  font-weight: 700;
  letter-spacing: .01em;
}
.faq-toggle{
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  position: relative;
  border: 1px solid rgba(202,163,91,.22);
  background: rgba(202,163,91,.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4);
}
.faq-toggle::before,
.faq-toggle::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:14px;
  height:2px;
  background:#a17836;
  border-radius:999px;
  transform:translate(-50%,-50%);
}
.faq-toggle::after{
  transform:translate(-50%,-50%) rotate(90deg);
  transition: transform .2s ease, opacity .2s ease;
}
.faq-item[open] .faq-toggle::after{
  transform:translate(-50%,-50%) rotate(90deg) scaleX(0);
  opacity:0;
}
.faq-answer{
  padding: 0 28px 24px;
}
.faq-answer p{
  margin: 0;
  padding-top: 2px;
  color: #5c6d84;
  font-size: 15px;
  line-height: 1.95;
  border-top: 1px solid rgba(16,38,78,.08);
  padding-top: 18px;
}
@media (max-width: 767px){
  .faq-intro{
    margin-bottom: 26px;
    font-size: 14px;
    line-height: 1.9;
  }
  .faq-item summary{
    grid-template-columns: 34px minmax(0,1fr) 32px;
    column-gap: 12px;
    padding: 18px 16px;
  }
  .faq-item summary::before{
    width: 34px;
    height: 34px;
    font-size: 13px;
  }
  .faq-question{
    font-size: 15px;
    line-height: 1.6;
  }
  .faq-toggle{
    flex-basis: 32px;
    width: 32px;
    height: 32px;
  }
  .faq-answer{
    padding: 0 18px 20px;
  }
  .faq-answer p{
    font-size: 14px;
    line-height: 1.85;
    padding-top: 16px;
  }
}


/* v90 bottom CTA section refined */
.cta-section{
  position:relative;
  overflow:hidden;
  padding:104px 0 116px;
  background:
    linear-gradient(135deg, rgba(10,24,53,.76), rgba(14,34,72,.72)),
    url("../images/cta_bg_city.jpeg") center center/cover no-repeat;
  color:#fff;
}
.cta-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 22%, rgba(200,167,106,.16), transparent 28%),
    radial-gradient(circle at 84% 18%, rgba(255,255,255,.08), transparent 24%);
  pointer-events:none;
}
.cta-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(7,16,34,.20), rgba(7,16,34,.34));
  pointer-events:none;
}
.cta-lead span{
  display:block;
}
.cta-inner{
  position:relative;
  z-index:1;
  max-width:none;
  width:min(980px, calc(100% - 48px));
  padding:56px 56px 64px;
  text-align:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:28px;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 24px 58px rgba(5,15,31,.18);
  backdrop-filter: blur(2px);
}
.cta-inner::before{
  content:"";
  display:block;
  width:64px;
  height:2px;
  margin:0 auto 22px;
  background:linear-gradient(90deg, rgba(200,167,106,.18), rgba(200,167,106,.92), rgba(200,167,106,.18));
}
.cta-inner h2{
  margin:0 0 18px;
  color:#fff;
  font-size:40px;
  line-height:1.45;
  letter-spacing:.03em;
  font-weight:700;
}
.cta-inner h2 span{
  display:block;
}
.cta-inner p{
  width:min(760px, 100%);
  margin:0 auto;
  color:rgba(255,255,255,.84);
  font-size:16px;
  line-height:2;
}
.cta-actions{
  display:flex;
  justify-content:center;
  gap:18px;
  margin-top:34px;
  flex-wrap:wrap;
}
.cta-actions .btn{
  min-width:240px;
  min-height:62px;
  padding:0 32px;
  border-radius:999px;
  font-size:16px;
  letter-spacing:.04em;
}
.cta-actions .btn-line{
  box-shadow:0 18px 34px rgba(18,199,85,.30), 0 10px 20px rgba(6,18,37,.16);
}
.cta-actions .btn-line:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 38px rgba(18,199,85,.36), 0 12px 22px rgba(6,18,37,.18);
}
.cta-actions .btn-ghost{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);
  color:#fff;
}
.cta-actions .btn-ghost:hover{
  background:rgba(255,255,255,.12);
}
@media (max-width: 767px){
  .cta-section{
    padding:76px 0 84px;
  }
  .cta-inner{
    width:min(100%, calc(100% - 28px));
    padding:42px 22px 38px;
    border-radius:24px;
  }
  .cta-inner::before{
    width:52px;
    margin-bottom:18px;
  }
  .cta-inner h2{
    font-size:30px;
    line-height:1.5;
    margin-bottom:14px;
  }
  .cta-inner p{
    font-size:14px;
    line-height:1.9;
  }
  .cta-actions{
    margin-top:26px;
    gap:12px;
  }
  .cta-actions .btn{
    width:min(100%, 320px);
    min-width:0;
    min-height:54px;
    font-size:14px;
  }
}

@media (max-width: 767px){
  .cta-lead span{display:inline;}
}



/* footer consultation section refinement */
.site-footer{
  position:relative;
  padding:72px 0 0;
  background:
    linear-gradient(180deg, #f8f8f7 0%, #f3f4f6 100%);
  border-top:1px solid rgba(11,35,79,.08);
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:1px;
  background:linear-gradient(90deg, rgba(200,167,106,0), rgba(200,167,106,.7), rgba(200,167,106,0));
}
.footer-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.5fr) minmax(180px, .8fr) minmax(180px, .8fr);
  gap:56px;
  align-items:start;
}
.footer-grid > div:first-child{
  padding-right:28px;
}
.footer-logo{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:22px;
}

.footer-logo-image-wrap{
  display:inline-flex;
  align-items:center;
  gap:0;
  margin-bottom:22px;
}
.footer-logo-image{
  display:block;
  width:200px;
  max-width:100%;
  height:auto;
}
.footer-copy{
  max-width:520px;
  margin:0;
  color:#47556f;
  font-size:16px;
  line-height:2;
  letter-spacing:.02em;
  position:relative;
  padding-left:18px;
}
.footer-copy::before{
  content:"";
  position:absolute;
  left:0;
  top:.45em;
  width:2px;
  height:3.4em;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(200,167,106,.88) 0%, rgba(200,167,106,.38) 100%);
}
.footer-copy span{
  display:block;
}
.footer-grid h3{
  margin:2px 0 18px;
  color:#0b234f;
  font-size:13px;
  letter-spacing:.16em;
  font-weight:700;
}
.footer-grid ul{
  list-style:none;
  margin:0;
  padding:0;
}
.footer-grid li + li{
  margin-top:12px;
}
.footer-grid a{
  color:#42516a;
  text-decoration:none;
  font-size:14px;
  line-height:1.8;
  transition:color .2s ease, opacity .2s ease;
}
.footer-grid a:hover{
  color:#0b234f;
}
.footer-bottom{
  margin-top:48px;
  padding:18px 0 24px;
  border-top:1px solid rgba(11,35,79,.08);
  color:#7d8797;
  font-size:12px;
  letter-spacing:.08em;
  text-align:center;
}
@media (max-width: 991px){
  .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:40px 28px;
  }
  .footer-grid > div:first-child{
    grid-column:1 / -1;
    padding-right:0;
  }
}
@media (max-width: 767px){
  .site-footer{
    padding-top:56px;
  }
  .footer-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
  .footer-logo{
    margin-bottom:16px;
  }
  .footer-logo-image{
    width:280px;
  }
}

/* Bottom CTA note refinement */
.cta-actions{
  margin-top: 36px;
}

.btn-line-cta{
  min-width: 344px;
  min-height: 68px;
  font-size: 19px;
  font-weight: 700;
  box-shadow: 0 18px 34px rgba(18,199,85,.28), 0 12px 24px rgba(6,18,37,.24);
}

.cta-note{
  margin:34px auto 32px;
  display:inline-block;
  width:auto;
  max-width:min(100%, 760px);
  padding:18px 34px 20px;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(7,20,44,.92), rgba(5,16,38,.97));
  border:1px solid rgba(201,169,109,.48);
  box-shadow:0 18px 40px rgba(4,12,28,.30), inset 0 1px 0 rgba(255,255,255,.07);
  text-align:center;
}
.cta-note span{
  display:block;
  color:#fff8ea;
  font-size:19px;
  line-height:1.55;
  font-weight:700;
  letter-spacing:.04em;
}

@media (max-width: 767px){
  .btn-line-cta{
    min-width: 100%;
    font-size: 17px;
  }
  .cta-note{
    width: 100%;
    max-width: 100%;
    margin: 24px auto 0;
    padding: 14px 18px 16px;
    border-radius: 16px;
  }
  .cta-note span{
    font-size: 16px;
    letter-spacing: .03em;
  }
}




/* Customer voices */
.section-voices{
  background:
    linear-gradient(180deg, #f7f5f1 0%, #f2eee6 100%);
  padding-top: 110px;
  padding-bottom: 110px;
}
.voices-wrap{
  max-width: 1180px;
}
.voices-intro{
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
.voices-grid{
  margin-top: 52px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}
.voice-card{
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(22,37,66,.12);
  border-radius: 22px;
  padding: 34px 34px 30px;
  box-shadow: 0 14px 34px rgba(18,31,54,.08);
}
.voice-meta{
  margin-bottom: 18px;
}
.voice-label{
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(22,37,66,.06);
  color: #24344d;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .08em;
  font-weight: 700;
}
.voice-card h3{
  margin: 0 0 18px;
  color: #13233d;
  font-size: 28px;
  line-height: 1.45;
  letter-spacing: .02em;
}
.voice-body{
  margin: 0;
  color: #384964;
  font-size: 15px;
  line-height: 2;
}
.voice-tags{
  margin-top: 22px;
  display: grid;
  gap: 10px;
}
.voice-tags span{
  display: block;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f5f1e8;
  color: #4b4f57;
  font-size: 13px;
  line-height: 1.7;
  border-left: 3px solid rgba(182,152,95,.75);
}

@media (max-width: 991px){
  .section-voices{
    padding-top: 88px;
    padding-bottom: 88px;
  }
  .voices-grid{
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .voice-card{
    padding: 28px 24px 24px;
  }
  .voice-card h3{
    font-size: 24px;
  }
}
@media (max-width: 767px){
  .section-voices{
    padding-top: 72px;
    padding-bottom: 72px;
  }
  .voices-grid{
    margin-top: 36px;
  }
  .voice-card h3{
    font-size: 21px;
    line-height: 1.55;
  }
  .voice-body{
    font-size: 14px;
    line-height: 1.9;
  }
  .voice-tags span{
    font-size: 12px;
    line-height: 1.7;
  }
}



/* Scroll motion */
.motion-target {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity 700ms ease,
    transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--motion-delay, 0ms);
  will-change: opacity, transform;
}

.motion-target.is-inview {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.motion-target.motion-soft {
  transform: translate3d(0, 16px, 0);
}

.motion-target.motion-panel {
  transform: translate3d(0, 26px, 0) scale(0.985);
}

.motion-target.motion-panel.is-inview {
  transform: translate3d(0, 0, 0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .motion-target,
  .motion-target.is-inview {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .hero,
  .cta-section {
    background-attachment: scroll;
  }
}



/* ===== SP refinement: header / hero / concerns ===== */
@media (max-width: 767px){
  .container,
  .narrow,
  .container.narrow{
    width:min(100% - 28px, 100%);
    max-width:none;
  }

  .site-header{
    background:rgba(10, 23, 47, .92);
    border-bottom:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
  .header-inner{
    position:relative;
    min-height:58px;
    gap:10px;
  }
  .logo-image{
    height:18px;
  }
  .menu-toggle{
    display:block;
    margin-left:auto;
    width:40px;
    height:40px;
  }
  .menu-toggle span{
    margin:5px 0;
  }

  .global-nav,
  .header-actions{
    display:none;
  }

  .site-header.is-open .global-nav{
    display:flex;
    position:absolute;
    top:calc(100% + 10px);
    left:0;
    right:0;
    flex-direction:column;
    gap:0;
    padding:10px 0;
    background:rgba(8, 20, 41, .98);
    border:1px solid rgba(255,255,255,.10);
    border-radius:16px;
    box-shadow:0 20px 40px rgba(3,10,24,.28);
    overflow:hidden;
    margin-bottom:0;
  }
  .site-header.is-open .global-nav a{
    display:block;
    padding:14px 16px;
    font-size:14px;
    line-height:1.5;
    color:rgba(255,255,255,.92);
    border-top:1px solid rgba(255,255,255,.06);
  }
  .site-header.is-open .global-nav a:first-child{
    border-top:0;
  }

  .site-header.is-open .header-actions{
    display:grid;
    position:absolute;
    top:calc(100% + 258px);
    left:0;
    right:0;
    gap:10px;
    padding:0;
  }
  .site-header.is-open .header-actions .btn{
    width:100%;
    min-height:46px;
    border-radius:14px;
    font-size:13px;
  }

  .hero{
    min-height:auto;
    background-position:62% center;
  }
  .hero-overlay{
    background:linear-gradient(to bottom, rgba(5,16,34,.28), rgba(7,20,42,.52));
  }
  .hero-content{
    min-height:auto;
    display:block;
    padding-top:94px;
    padding-bottom:56px;
  }
  .hero-stack{
    width:100%;
    transform:none;
  }
  .hero-copy-panel{
    padding:20px 18px 18px;
    border-radius:18px;
    background:rgba(8,22,45,.54);
    box-shadow:0 14px 30px rgba(4,10,22,.20);
  }
  .hero .eyebrow{
    margin-bottom:12px;
    font-size:9px;
    letter-spacing:.18em;
  }
  .hero h1{
    margin-bottom:14px;
    font-size:32px;
    line-height:1.42;
    letter-spacing:.02em;
    text-wrap:pretty;
  }
  .lead{
    max-width:none;
    font-size:14px;
    line-height:1.78;
  }
  .lead-line{
    white-space:normal;
  }
  .hero-actions{
    margin-top:16px;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .hero-actions .btn{
    width:100%;
    min-height:48px;
    font-size:14px;
    border-radius:14px;
  }
  .hero-actions .btn-panel{
    background:rgba(11,24,49,.58);
  }
  .scroll-indicator{
    display:none;
  }

  .section{
    padding:72px 0;
  }
  #concerns{
    padding-top:62px;
  }
  .section h2{
    font-size:28px;
    line-height:1.55;
    margin-bottom:14px;
    text-wrap:pretty;
  }
  .section-intro{
    margin-bottom:20px;
    font-size:14px;
    line-height:1.9;
  }
  .trust-points{
    margin:18px 0 0;
    gap:10px;
  }
  .trust-point{
    min-height:58px;
    padding:12px 14px 12px 14px;
    gap:10px;
    border-radius:14px;
  }
  .trust-point-icon{
    width:32px;
    height:32px;
    flex-basis:32px;
  }
  .trust-point-text{
    font-size:13px;
    line-height:1.5;
  }

  .concern-grid{
    grid-template-columns:1fr;
    gap:14px;
    margin-top:24px;
  }
  .concern-card{
    border-radius:18px;
    box-shadow:0 14px 28px rgba(20,37,78,.07);
  }
  .concern-card::before{
    height:4px;
  }
  .concern-card-image{
    aspect-ratio:16 / 8.8;
  }
  .concern-card-body{
    padding:16px 16px 18px;
  }
  .concern-card-kicker{
    margin-bottom:10px;
    font-size:11px;
  }
  .concern-card h3{
    margin:0 0 10px;
    font-size:20px;
    line-height:1.5;
    letter-spacing:.01em;
  }
  .concern-card h3 br{
    display:none;
  }
  .concern-card p{
    font-size:13px;
    line-height:1.75;
  }
  .concerns-cta .btn-line-prominent{
    width:100%;
    min-height:50px;
    font-size:14px;
    border-radius:14px;
  }
}


/* v113 SP refinement: rebuild / cases / voices */
@media (max-width: 767px){
  .rebuild-section{
    padding-top: 72px;
    padding-bottom: 76px;
  }
  .rebuild-section .container.narrow{
    width: min(100% - 32px, 100%);
  }
  .rebuild-head{
    margin-bottom: 26px;
  }
  .rebuild-head h2{
    margin-bottom: 14px;
    line-height: 1.45;
  }
  .rebuild-head .section-intro{
    font-size: 14px;
    line-height: 1.9;
  }
  .rebuild-strengths-head{
    gap: 6px;
    margin: 0 0 20px;
  }
  .rebuild-strengths-kicker{
    font-size: 0.8rem;
    letter-spacing: 0.16em;
    margin-bottom: 6px;
  }
  .rebuild-strengths-title{
    line-height: 1.35;
  }
  .rebuild-grid{
    gap: 14px;
  }
  .rebuild-card{
    padding: 0;
    border-radius: 18px;
    overflow: hidden;
  }
  .rebuild-card::before{
    width: 3px;
  }
  .rebuild-card-index{
    padding: 16px 18px 0;
    font-size: 1.6rem !important;
    line-height: 1;
    color: rgba(216,191,132,.92);
  }
  .rebuild-card-copy{
    padding: 10px 18px 18px !important;
  }
  .rebuild-card h3{
    margin: 0 0 8px;
    min-height: 0;
    font-size: 1.35rem !important;
    line-height: 1.5 !important;
    letter-spacing: 0.01em;
  }
  .rebuild-card p{
    font-size: 0.93rem !important;
    line-height: 1.78 !important;
    color: rgba(255,255,255,0.86);
  }

  .cases-section{
    padding-top: 72px;
    padding-bottom: 76px;
  }
  .case-wrap{
    width: min(100% - 32px, 100%);
  }
  .case-head{
    margin-bottom: 24px;
  }
  .case-head h2{
    margin-bottom: 12px;
  }
  .case-intro{
    font-size: 14px;
    line-height: 1.9;
  }
  .case-panel{
    padding: 22px 18px 20px;
    border-radius: 18px;
  }
  .case-panel::before{
    width: 3px;
    border-radius: 18px 0 0 18px;
  }
  .case-meta{
    margin-bottom: 14px;
  }
  .case-tag{
    font-size: 11px;
    letter-spacing: 0.08em;
  }
  .case-grid{
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .case-side{
    order: -1;
    gap: 12px;
  }
  .case-main{
    order: 1;
  }
  .case-copy{
    font-size: 1.45rem;
    line-height: 1.58;
    margin-bottom: 12px;
  }
  .case-copy span{
    white-space: normal;
  }
  .case-desc{
    margin-bottom: 18px;
    max-width: none;
    font-size: 14px;
    line-height: 1.85;
  }
  .case-stats{
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px;
    border-radius: 16px;
  }
  .stat-arrow{
    transform: rotate(90deg);
    justify-self: center;
    font-size: 20px;
  }
  .stat-box{
    min-height: 0;
    padding: 16px 14px;
    border-radius: 14px;
  }
  .stat-box span{
    font-size: 11px;
    letter-spacing: 0.12em;
  }
  .stat-box strong{
    font-size: 1.6rem;
    line-height: 1.35;
  }
  .case-foot{
    padding: 12px 14px;
    border-radius: 14px;
    font-size: 13px;
    line-height: 1.7;
  }
  .case-points{
    gap: 12px;
  }
  .case-point{
    min-height: 0;
    padding: 14px;
    border-radius: 14px;
  }
  .case-point p{
    max-width: none;
    font-size: 13px;
    line-height: 1.72;
  }

  .section-voices{
    padding-top: 72px;
    padding-bottom: 76px;
  }
  .voices-wrap{
    width: min(100% - 32px, 100%);
  }
  .voices-head{
    text-align: center;
  }
  .voices-head h2{
    margin-bottom: 12px;
  }
  .voices-intro{
    font-size: 14px;
    line-height: 1.9;
  }
  .voices-grid{
    margin-top: 28px;
    gap: 16px;
  }
  .voice-card{
    padding: 22px 18px 18px;
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(18,31,54,.07);
  }
  .voice-meta{
    margin-bottom: 12px;
  }
  .voice-label{
    min-height: 0;
    padding: 7px 12px;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0.06em;
  }
  .voice-card h3{
    margin-bottom: 12px;
    font-size: 1.35rem;
    line-height: 1.55;
  }
  .voice-body{
    font-size: 14px;
    line-height: 1.85;
  }
  .voice-tags{
    margin-top: 16px;
    gap: 8px;
  }
  .voice-tags span{
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 12px;
    line-height: 1.65;
  }
}


/* ===== SP refinement: office / faq / bottom cta / footer ===== */
@media (max-width: 767px){
  .office-section{
    padding-top: 72px;
    padding-bottom: 76px;
  }
  .office-copy{
    margin-bottom: 24px;
  }
  .office-copy h2{
    margin-bottom: 14px;
    line-height: 1.55;
  }
  .office-copy .section-intro{
    max-width: 100%;
    font-size: 14px;
    line-height: 1.9;
  }
  .office-main{
    margin: 24px 0 34px;
  }
  .office-points{
    padding: 24px 18px 22px;
    border-radius: 20px;
  }
  .office-points h3{
    margin-bottom: 14px;
    font-size: 20px;
    line-height: 1.5;
    text-align: left;
  }
  .office-points ul{
    gap: 10px;
  }
  .office-points li{
    padding: 11px 12px 11px 38px;
    font-size: 14px;
    line-height: 1.75;
  }
  .office-location-head{
    margin-bottom: 22px;
  }
  .office-location-head h3{
    margin-bottom: 10px;
    font-size: 24px;
  }
  .office-location-head p{
    font-size: 14px;
    line-height: 1.85;
  }
  .office-location-grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .location-card{
    border-radius: 22px;
    overflow: hidden;
  }
  .location-card-image{
    height: 246px;
  }
  .location-card-body{
    padding: 20px 18px 22px;
  }
  .location-label{
    font-size: 11px;
    letter-spacing: .18em;
  }
  .location-card h3{
    margin: 10px 0 16px;
    font-size: 24px;
    line-height: 1.4;
  }
  .location-address,
  .location-access{
    padding: 16px 14px;
    border-radius: 16px;
  }
  .location-address{
    margin-bottom: 12px;
  }
  .location-block-label{
    margin-bottom: 8px;
    font-size: 11px;
    letter-spacing: .18em;
  }
  .location-address p,
  .location-access li{
    font-size: 14px;
    line-height: 1.8;
  }
  .location-access ul{
    gap: 8px;
  }

  .faq-section{
    padding-top: 72px;
    padding-bottom: 76px;
  }
  .faq-section h2{
    margin-bottom: 12px;
  }
  .faq-intro{
    margin-bottom: 22px;
    font-size: 14px;
    line-height: 1.9;
    text-align: left;
  }
  .faq-list{
    gap: 12px;
  }
  .faq-item{
    border-radius: 16px;
    box-shadow: 0 10px 24px rgba(16,38,78,.05);
  }
  .faq-item summary{
    padding: 16px 14px;
    column-gap: 10px;
  }
  .faq-question{
    font-size: 14px;
    line-height: 1.65;
  }
  .faq-answer{
    padding: 0 14px 18px;
  }
  .faq-answer p{
    padding-top: 14px;
    font-size: 14px;
    line-height: 1.85;
  }

  .cta-section{
    padding: 72px 0 84px;
  }
  .cta-inner{
    width: min(100%, calc(100% - 24px));
    padding: 36px 18px 30px;
    border-radius: 22px;
  }
  .cta-inner::before{
    width: 52px;
    margin-bottom: 18px;
  }
  .cta-inner h2{
    font-size: 31px;
    line-height: 1.55;
    margin-bottom: 16px;
  }
  .cta-lead{
    margin: 0 auto;
    max-width: 31em;
  }
  .cta-inner p{
    font-size: 14px;
    line-height: 1.9;
  }
  .cta-actions{
    margin-top: 24px;
    gap: 12px;
  }
  .cta-actions .btn{
    width: 100%;
    min-width: 0;
    min-height: 54px;
    font-size: 15px;
  }
  .cta-note{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 28px auto 10px !important;
    padding: 14px 16px 16px !important;
    border-radius: 16px !important;
    text-align: center !important;
  }
  .cta-note span{
    font-size: 16px !important;
    line-height: 1.7 !important;
    letter-spacing: .03em !important;
  }

  .site-footer{
    padding-top: 52px;
  }
  .footer-grid{
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .footer-grid > div:first-child{
    padding-right: 0;
  }
  .footer-logo-image{
    width: 180px;
  }
  .footer-copy{
    max-width: 100%;
    font-size: 14px;
    line-height: 1.95;
    padding-left: 14px;
  }
  .footer-copy::before{
    top: .4em;
    height: 3.2em;
  }
  .site-footer h3{
    margin-bottom: 12px;
    font-size: 15px;
  }
  .site-footer ul{
    display: grid;
    gap: 10px;
  }
  .site-footer li a{
    font-size: 14px;
    line-height: 1.7;
  }
  .footer-bottom{
    margin-top: 28px;
    padding: 18px 0 20px;
    font-size: 12px;
  }
}


/* ===== SP final spacing / line breaks / button rhythm tune ===== */
@media (max-width: 767px){
  .section{
    padding: 68px 0;
  }

  .section h2{
    margin-bottom: 14px;
    font-size: 28px;
    line-height: 1.52;
    letter-spacing: .01em;
  }

  .section-intro{
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.88;
  }

  .hero{
    min-height: auto;
  }

  .hero-inner{
    padding-top: 88px;
    padding-bottom: 72px;
  }

  .hero-panel{
    padding: 22px 18px 18px;
    border-radius: 18px;
  }

  .hero-copy{
    gap: 14px;
  }

  .hero-title{
    font-size: 32px;
    line-height: 1.42;
    letter-spacing: .01em;
  }

  .hero-lead{
    font-size: 15px;
    line-height: 1.9;
    margin-top: 4px;
  }

  .hero-actions{
    margin-top: 20px;
    gap: 12px;
  }

  .hero-actions .btn,
  .cta-actions .btn{
    min-height: 56px;
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .hero-note,
  .cta-note{
    margin-top: 24px !important;
  }

  .concern-grid{
    gap: 16px;
    margin-top: 24px;
  }

  .concern-card{
    border-radius: 18px;
  }

  .concern-card-body{
    padding: 16px 15px 18px;
  }

  .concern-card h3{
    font-size: 20px;
    line-height: 1.5;
    margin-bottom: 10px;
  }

  .concern-card p{
    font-size: 14px;
    line-height: 1.82;
  }

  .rebuild-section,
  .cases-section,
  .section-voices,
  .office-section,
  .faq-section,
  .cta-section{
    padding-top: 68px;
    padding-bottom: 74px;
  }

  .rebuild-copy h2,
  .cases-copy h2,
  .voices-copy h2,
  .office-copy h2,
  .faq-section h2,
  .cta-inner h2{
    line-height: 1.48;
  }

  .rebuild-card-grid,
  .voices-grid{
    gap: 16px;
    margin-top: 24px;
  }

  .rebuild-card{
    padding: 22px 18px 18px;
    border-radius: 18px;
  }

  .rebuild-card-number{
    margin-bottom: 8px;
  }

  .rebuild-card h3{
    font-size: 19px;
    line-height: 1.52;
    margin-bottom: 10px;
  }

  .rebuild-card p{
    font-size: 14px;
    line-height: 1.8;
  }

  .cases-panel{
    gap: 18px;
  }

  .case-title{
    font-size: 27px;
    line-height: 1.48;
    margin-bottom: 14px;
  }

  .case-lead{
    font-size: 14px;
    line-height: 1.85;
  }

  .case-stats{
    gap: 12px;
  }

  .case-note{
    margin-top: 14px;
  }

  .case-points{
    gap: 12px;
    margin-top: 16px;
  }

  .voice-card{
    padding: 22px 18px 18px;
    border-radius: 18px;
  }

  .voice-label{
    font-size: 11px;
    letter-spacing: .08em;
  }

  .voice-card h3{
    font-size: 20px;
    line-height: 1.52;
    margin: 12px 0 10px;
  }

  .voice-card p{
    font-size: 14px;
    line-height: 1.82;
  }

  .voice-tags{
    margin-top: 14px;
    gap: 8px;
  }

  .voice-tag{
    line-height: 1.55;
  }

  .office-main{
    margin: 22px 0 30px;
  }

  .location-card-body{
    padding: 18px 16px 20px;
  }

  .location-card h3{
    margin: 10px 0 14px;
  }

  .faq-list{
    margin-top: 18px;
  }

  .faq-item summary{
    min-height: 56px;
  }

  .cta-inner{
    padding-top: 34px;
    padding-bottom: 32px;
  }

  .cta-inner p{
    font-size: 14px;
    line-height: 1.9;
  }

  .site-footer{
    padding-top: 46px;
  }

  .footer-grid{
    gap: 20px;
  }

  .footer-copy{
    margin-top: 12px;
  }
}


/* SP hamburger menu refinement */
@media (max-width: 767px){
  body.menu-open{
    overflow:hidden;
    margin-bottom:0;
  }
  body.menu-open::before{
    content:"";
    position:fixed;
    inset:58px 0 0 0;
    background:linear-gradient(180deg, rgba(4,12,28,.96) 0%, rgba(5,15,34,.94) 100%);
    z-index:28;
  }

  .site-header.is-open .global-nav,
  .site-header.is-open .header-actions{
    position:fixed;
    left:20px;
    right:20px;
    z-index:31;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(0);
    transition:opacity .28s ease, transform .28s ease, visibility .28s ease;
  }

  .global-nav,
  .header-actions{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateX(28px);
    transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
  }

  .site-header.is-open .global-nav{
    display:flex;
    top:88px;
    flex-direction:column;
    gap:0;
    padding:20px 0;
    background:rgba(2, 16, 45, .96);
    border:1px solid rgba(255,255,255,.10);
    border-radius:24px;
    box-shadow:0 18px 42px rgba(3,10,24,.34);
    overflow:hidden;
    margin-bottom:0;
  }
  .site-header.is-open .global-nav a{
    display:block;
    padding:22px 28px;
    font-size:16px;
    line-height:1.45;
    color:rgba(255,255,255,.96);
    border-top:1px solid rgba(255,255,255,.08);
  }
  .site-header.is-open .global-nav a:first-child{
    border-top:0;
  }

  .site-header.is-open .header-actions{
    display:grid;
    top:426px;
    gap:18px;
    padding:0;
  }
  .site-header.is-open .header-actions .btn{
    width:100%;
    min-height:56px;
    border-radius:18px;
    font-size:15px;
    letter-spacing:.02em;
    box-shadow:0 14px 26px rgba(4,10,22,.20);
  }

  .site-header.is-open .header-actions .btn-line{
    box-shadow:0 16px 30px rgba(6,180,83,.22), 0 10px 20px rgba(4,10,22,.18);
  }
}

@media (max-width: 1024px){
  .hero-copy-panel{
    padding-right:210px;
  }
  .hero-illustration{
    right:24px;
    top:50%;
    width:132px;
    transform:translateY(-50%);
    opacity:.86;
  }
}
@media (max-width: 767px){
  .hero-copy-panel{
    padding:20px 132px 20px 18px;
  }
  .hero h1{
    font-size:31px;
    line-height:1.34;
  }
  .hero-illustration{
    display:block;
    right:12px;
    top:16px;
    width:124px;
    transform:none;
    opacity:.92;
    filter:drop-shadow(0 12px 20px rgba(0,0,0,.20));
  }
}


/* ===== Hero content update: support version ===== */
.hero-stack--support{
  width:min(100%, 920px);
  transform:translateY(-28px);
}
.hero-copy-panel--support{
  padding:32px 52px 30px;
}
.eyebrow-support{
  color:var(--gold);
  font-size:12px;
  letter-spacing:.12em;
  line-height:1.8;
}
.hero-lead-support{
  max-width:none;
  margin-top:18px;
}
.hero-lead-emphasis{
  display:inline-block;
  width:auto;
  margin-bottom:8px;
  padding:6px 12px;
  color:#fff8de;
  font-weight:800;
  letter-spacing:.04em;
  background:rgba(205, 166, 88, .20);
  border:1px solid rgba(242, 211, 139, .46);
  border-radius:999px;
  box-shadow:0 8px 20px rgba(0, 0, 0, .14);
}
.hero-benefits{
  list-style:none;
  margin:22px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}
.hero-benefits li{
  min-height:52px;
  display:flex;
  align-items:center;
  padding:12px 16px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(9, 21, 43, .34);
  border-radius:4px;
  color:rgba(248,247,243,.96);
  font-size:14px;
  line-height:1.5;
  font-weight:700;
}
.hero-actions--support{
  margin-top:16px;
}

@media (max-width: 1024px){
  .hero-stack--support{
    width:min(100%, 840px);
  }
  .hero-copy-panel--support{
    padding:28px 36px 26px;
  }
}

@media (max-width: 767px){
  .hero-copy-panel--support{
    padding:24px 18px 20px;
  }
  .eyebrow-support{
    font-size:11px;
    line-height:1.7;
  }
  .hero-benefits{
    grid-template-columns:1fr;
    gap:10px;
    margin-top:18px;
  }
  .hero-benefits li{
    min-height:48px;
    padding:10px 12px;
    font-size:13px;
  }
  .hero-actions--support{
    margin-top:14px;
  }
}


/* ===== Hero line fix ===== */
.hero-copy-panel--support .hero-title-line{
  white-space:nowrap;
}


/* ===== Hero benefit checkmarks ===== */
.hero-benefits li{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
}
.hero-benefit-check{
  position:relative;
  flex:0 0 16px;
  width:16px;
  height:16px;
  display:inline-block;
}
.hero-benefit-check::before{
  content:"";
  position:absolute;
  left:1px;
  top:3px;
  width:6px;
  height:10px;
  border-right:3px solid rgba(211,190,145,.96);
  border-bottom:3px solid rgba(211,190,145,.96);
  transform:rotate(40deg);
  box-sizing:border-box;
}
.hero-benefit-text{
  display:block;
  min-width:0;
}

@media (max-width: 767px){
  .hero-benefits li{
    gap:8px;
  }
  .hero-benefit-check{
    flex-basis:14px;
    width:14px;
    height:14px;
  }
  .hero-benefit-check::before{
    left:1px;
    top:2px;
    width:5px;
    height:9px;
    border-right-width:2px;
    border-bottom-width:2px;
  }
}


/* ===== Hero CTA 1.5x ===== */
.hero-actions--support .btn{
  min-height:66px;
  padding:0 27px;
  font-size:18px;
}
@media (max-width: 767px){
  .hero-actions--support .btn{
    min-height:60px;
    padding:0 20px;
    font-size:16px;
  }
}


/* ===== Hero CTA gap tune ===== */
.hero-actions--support{
  gap:18px;
}
@media (max-width: 767px){
  .hero-actions--support{
    gap:12px;
  }
}


/* ===== Concerns card line fix ===== */
#concerns .container.narrow{
  max-width:1240px;
}
#concerns .concern-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:34px 34px;
}
#concerns .concern-card-body h3{
  line-height:1.42;
  text-wrap:balance;
}
#concerns .concern-card-body p{
  line-height:1.78;
}

@media (max-width: 1180px){
  #concerns .container.narrow{
    max-width:1080px;
  }
  #concerns .concern-grid{
    gap:26px 26px;
  }
}

@media (max-width: 900px){
  #concerns .concern-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px){
  #concerns .container.narrow{
    max-width:none;
  }
  #concerns .concern-grid{
    grid-template-columns:1fr;
    gap:18px;
  }
  #concerns .concern-card-body h3{
    text-wrap:initial;
  }
}




/* ===== Concerns 02 03 real two-line fix ===== */
#concerns{
  overflow:visible;
}
#concerns .container.narrow{
  width:min(1820px, calc(100vw - 24px));
  max-width:none;
}
#concerns .concern-grid{
  width:100%;
  max-width:none;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
#concerns .concern-card{
  width:100%;
  max-width:none;
}
#concerns .concern-card-body{
  padding:28px 20px 30px;
}
#concerns .concern-card-body h3{
  font-size:18px;
  line-height:1.5;
  letter-spacing:.01em;
  margin:0 0 14px;
  word-break:keep-all;
  overflow-wrap:normal;
}
#concerns .concern-card-body h3 br{
  display:block;
}
#concerns .concern-card-body p{
  margin:0;
  max-width:none;
  padding:0;
  line-height:1.9;
}

@media (max-width: 1400px){
  #concerns .container.narrow{
    width:min(1500px, calc(100vw - 20px));
  }
  #concerns .concern-grid{
    gap:18px;
  }
  #concerns .concern-card-body{
    padding:28px 22px 30px;
  }
}

@media (max-width: 1100px){
  #concerns .container.narrow{
    width:min(100%, calc(100% - 24px));
  }
  #concerns .concern-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:20px;
  }
  #concerns .concern-card-body{
    padding:26px 22px 28px;
  }
}

@media (max-width: 767px){
  #concerns .container.narrow{
    width:min(100%, calc(100% - 24px));
  }
  #concerns .concern-grid{
    grid-template-columns:1fr;
    gap:18px;
  }
  #concerns .concern-card-body{
    padding:22px 18px 24px;
  }
  #concerns .concern-card-body h3{
    font-size:18px;
    line-height:1.52;
  }
  #concerns .concern-card-body h3 br{
    display:none;
  }
  #concerns .concern-card-body p{
    line-height:1.82;
  }
}










/* ===== Concerns heading direct equal margins ===== */
#concerns > .container.narrow > .eyebrow,
#concerns > .container.narrow > h2,
#concerns > .container.narrow > .section-intro{
  display:block;
  width:min(1200px, calc(100% - 96px)) !important;
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box;
  text-align:left;
}

#concerns > .container.narrow > .eyebrow{
  margin-bottom:26px !important;
}
#concerns > .container.narrow > h2{
  margin-bottom:28px !important;
}
#concerns > .container.narrow > .section-intro{
  margin-bottom:42px !important;
}

@media (max-width: 1280px){
  #concerns > .container.narrow > .eyebrow,
  #concerns > .container.narrow > h2,
  #concerns > .container.narrow > .section-intro{
    width:min(100%, calc(100% - 48px)) !important;
  }
}

@media (max-width: 767px){
  #concerns > .container.narrow > .eyebrow,
  #concerns > .container.narrow > h2,
  #concerns > .container.narrow > .section-intro{
    width:100% !important;
  }
  #concerns > .container.narrow > .section-intro{
    margin-bottom:30px !important;
  }
}


/* ===== Concerns heading centered text ===== */
#concerns > .container.narrow > .eyebrow,
#concerns > .container.narrow > h2,
#concerns > .container.narrow > .section-intro{
  text-align:center;
}



















/* ===== Concern 01 photo crop tune ===== */
#concerns .concern-card--01 .concern-card-image{
  overflow:hidden !important;
  position:relative;
}
#concerns .concern-card--01 .concern-card-image img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center 82% !important;
  transform:scale(2.25) !important;
  transform-origin:center center !important;
}




/* ===== Added support section ===== */
.support-section{
  background:#f6f7f8;
  padding-top:84px;
  padding-bottom:78px;
}
.support-head{
  margin-bottom:42px;
}
.support-head.center{
  text-align:center;
}
.eyebrow-support-note{
  display:inline-block;
  margin:0 0 12px;
  color:#b79b63;
  font-size:12px;
  letter-spacing:.14em;
  font-weight:700;
}
.eyebrow-support-note::before,
.eyebrow-support-note::after{
  display:none;
}
.support-head h2{
  margin:0;
  color:#1f3158;
  font-size:34px;
  line-height:1.55;
  letter-spacing:.01em;
}

.support-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:24px;
  align-items:start;
}
.support-card{
  position:relative;
  padding:28px 26px 22px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(31,49,88,.08);
  box-shadow:0 8px 18px rgba(31,49,88,.04);
}
.support-card:nth-child(4),
.support-card:nth-child(5){
  margin-top:0;
}
.support-card::before{
  display:none;
}
.support-card-num{
  position:absolute;
  left:16px;
  top:14px;
  color:rgba(183,155,99,.44);
  font-family:"Noto Serif JP", serif;
  font-size:30px;
  line-height:1;
  font-style:italic;
}
.support-card-icon{
  display:flex;
  justify-content:flex-start;
  margin:18px 0 14px;
}

.support-icon{
  position:relative;
  display:block;
  width:46px;
  height:46px;
}
.support-icon::before,
.support-icon::after{
  content:"";
  position:absolute;
  box-sizing:border-box;
}

/* 01: bundle / house + coin */
.support-icon--bundle::before{
  left:4px; top:18px; width:18px; height:14px;
  border:3px solid #263b69; border-top:none;
  background:#fff;
  box-shadow:
    22px 8px 0 -4px #d9b54f;
}
.support-icon--bundle::after{
  left:7px; top:9px; width:12px; height:12px;
  border-left:3px solid #263b69;
  border-top:3px solid #263b69;
  transform:rotate(45deg);
}
.support-icon--bundle{
  background:
    radial-gradient(circle, transparent 8px, #263b69 8px, #263b69 11px, transparent 12px) 30px 20px / 22px 22px no-repeat,
    linear-gradient(#263b69,#263b69) 33px 20px / 7px 3px no-repeat,
    linear-gradient(#263b69,#263b69) 35px 17px / 3px 9px no-repeat;
}

/* 02: one-stop / person + check sheet */
.support-icon--onestop::before{
  left:4px; top:10px; width:14px; height:14px;
  border:3px solid #263b69; border-radius:999px;
  background:#fff;
}
.support-icon--onestop::after{
  left:2px; top:25px; width:18px; height:13px;
  border:3px solid #263b69; border-top-left-radius:10px; border-top-right-radius:10px; border-bottom:none;
}
.support-icon--onestop{
  background:
    linear-gradient(#263b69,#263b69) 27px 13px / 12px 2px no-repeat,
    linear-gradient(#263b69,#263b69) 27px 19px / 10px 2px no-repeat,
    linear-gradient(#263b69,#263b69) 27px 25px / 8px 2px no-repeat,
    linear-gradient(135deg, transparent 45%, #263b69 46%, #263b69 58%, transparent 59%) 34px 26px / 10px 10px no-repeat,
    linear-gradient(45deg, transparent 58%, #263b69 59%, #263b69 71%, transparent 72%) 28px 29px / 9px 7px no-repeat,
    linear-gradient(#fff,#fff) 22px 8px / 20px 28px no-repeat,
    linear-gradient(#263b69,#263b69) 22px 8px / 20px 3px no-repeat,
    linear-gradient(#263b69,#263b69) 22px 8px / 3px 28px no-repeat,
    linear-gradient(#263b69,#263b69) 39px 8px / 3px 28px no-repeat,
    linear-gradient(#263b69,#263b69) 22px 33px / 20px 3px no-repeat;
}

/* 03: property / buildings */
.support-icon--property::before{
  left:6px; top:14px; width:12px; height:22px;
  border:3px solid #263b69;
  background:
    linear-gradient(#263b69,#263b69) 3px 5px / 2px 2px repeat-y,
    linear-gradient(#263b69,#263b69) 7px 5px / 2px 2px repeat-y,
    #fff;
}
.support-icon--property::after{
  left:21px; top:8px; width:16px; height:28px;
  border:3px solid #263b69;
  background:
    linear-gradient(#263b69,#263b69) 4px 6px / 2px 2px repeat-y,
    linear-gradient(#263b69,#263b69) 10px 6px / 2px 2px repeat-y,
    #fff;
}
.support-icon--property{
  background:
    linear-gradient(#263b69,#263b69) 0 36px / 40px 3px no-repeat;
}

/* 04: bank / temple */
.support-icon--bank::before{
  left:7px; top:15px; width:32px; height:18px;
  border-left:3px solid #263b69;
  border-right:3px solid #263b69;
  border-bottom:3px solid #263b69;
  background:
    linear-gradient(#263b69,#263b69) 5px 0 / 3px 18px no-repeat,
    linear-gradient(#263b69,#263b69) 14px 0 / 3px 18px no-repeat,
    linear-gradient(#263b69,#263b69) 23px 0 / 3px 18px no-repeat,
    #fff;
}
.support-icon--bank::after{
  left:8px; top:7px; width:30px; height:10px;
  border-top:3px solid #263b69;
  border-left:3px solid transparent;
  border-right:3px solid transparent;
  transform:skewX(-25deg);
}
.support-icon--bank{
  background:
    linear-gradient(#263b69,#263b69) 6px 35px / 34px 3px no-repeat;
}

/* 05: approval results / check mark in circle */
.support-icon--approval::before{
  left:8px; top:8px; width:28px; height:28px;
  border:3px solid #263b69; border-radius:999px;
  background:#fff;
}
.support-icon--approval::after{
  left:17px; top:17px; width:10px; height:6px;
  border-left:3px solid #263b69;
  border-bottom:3px solid #263b69;
  transform:rotate(-45deg);
}

.support-card h3{
  margin:0 0 12px;
  color:#1f3158;
  font-size:21px;
  line-height:1.48;
  font-weight:800;
  letter-spacing:.01em;
}
.support-card h3 span{
  display:inline;
  background:none;
}
.support-card p{
  margin:0;
  color:#647391;
  font-size:14px;
  line-height:1.82;
}
.support-note{
  display:inline-block;
  margin:20px auto 0;
  padding:12px 20px;
  text-align:center;
  color:#fff;
  font-size:16px;
  font-weight:700;
  line-height:1.7;
  background:#1f3158;
  border:1px solid rgba(31,49,88,.08);
  border-radius:999px;
}

@media (max-width: 1200px){
  .support-head h2{
    font-size:28px;
  }
  .support-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px){
  .support-section{
    padding-top:54px;
    padding-bottom:48px;
  }
  .eyebrow-support-note{
    font-size:12px;
  }
  .support-head{
    margin-bottom:28px;
  }
  .support-head h2{
    font-size:28px;
    line-height:1.55;
  }
  .support-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .support-card{
    padding:26px 18px 20px;
    border-radius:16px;
  }
  .support-card-num{
    left:14px;
    top:12px;
    font-size:26px;
  }
  .support-card-icon{
    margin:16px 0 12px;
  }
  .support-card h3{
    font-size:19px;
  }
  .support-card p{
    font-size:14px;
    line-height:1.76;
  }
  .support-note{
    font-size:15px;
    line-height:1.7;
  }
}

.support-head h2 br{
  display:block;
}


/* ===== Support cards equal heights ===== */
.support-grid{
  align-items:stretch;
}
.support-card{
  height:100%;
  display:flex;
  flex-direction:column;
}
.support-card p{
  margin-top:auto;
}


.support-section .container{
  text-align:center;
}
.support-section .support-grid,
.support-section .support-head{
  text-align:initial;
}


/* ===== Cases simulation section ===== */
.cases-section{
  background:#eef2f8;
  padding-top:86px;
  padding-bottom:72px;
}
.case-sim-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:28px;
  margin-top:34px;
}
.case-sim-card{
  background:#fff;
  border:1px solid rgba(31,49,88,.12);
  border-radius:28px;
  padding:24px 18px 18px;
  box-shadow:0 10px 24px rgba(31,49,88,.05);
}
.case-sim-card h3{
  margin:0 0 24px;
  color:#204386;
  font-size:22px;
  line-height:1.45;
  text-align:center;
  font-weight:800;
}
.case-sim-panels{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 44px minmax(0, 1fr);
  align-items:center;
  gap:8px;
}
.case-sim-panel{
  min-height:290px;
  border-radius:22px;
  padding:18px 18px 16px;
  border:1px solid rgba(165,191,235,.75);
  background:#edf1f6;
  display:flex;
  flex-direction:column;
}
.case-sim-panel--before{
  background:#eef1f5;
  border-color:rgba(199,210,229,.9);
}
.case-sim-panel--after{
  background:#e7effb;
  border-color:rgba(164,192,236,.95);
}
.case-sim-panel h4{
  margin:0 0 16px;
  color:#204386;
  font-size:20px;
  line-height:1.4;
  text-align:center;
  font-weight:800;
}
.case-sim-panel ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:10px;
}
.case-sim-panel li{
  background:rgba(255,255,255,.55);
  border-radius:14px;
  min-height:44px;
  display:flex;
  align-items:center;
  padding:0 14px;
  color:#204386;
  font-size:18px;
  line-height:1.4;
  font-weight:700;
}
.case-sim-arrow{
  width:40px;
  height:40px;
  border-radius:999px;
  background:linear-gradient(180deg, #ffa24b 0%, #ff8e31 100%);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:26px;
  font-weight:800;
  box-shadow:0 8px 18px rgba(255,143,47,.28);
}
.case-sim-total,
.case-sim-highlight{
  margin:10px 0 0;
  min-height:50px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  font-size:18px;
  line-height:1.4;
  font-weight:800;
}
.case-sim-total{
  margin-top:auto;
  background:linear-gradient(180deg, #7d89a5 0%, #63708f 100%);
  color:#fff;
}
.case-sim-highlight{
  margin-top:auto;
  background:linear-gradient(180deg, #ffb05e 0%, #ff9237 100%);
  color:#fff;
}
.case-sim-note{
  margin:28px 0 0;
  text-align:center;
  color:#5b6474;
  font-size:14px;
  line-height:1.8;
}

@media (max-width: 1200px){
  .case-sim-grid{
    grid-template-columns:1fr;
    gap:22px;
  }
}
@media (max-width: 767px){
  .cases-section{
    padding-top:58px;
    padding-bottom:50px;
  }
  .case-sim-grid{
    margin-top:24px;
    gap:18px;
  }
  .case-sim-card{
    border-radius:22px;
    padding:18px 14px 14px;
  }
  .case-sim-card h3{
    margin-bottom:18px;
    font-size:18px;
  }
  .case-sim-panels{
    grid-template-columns:1fr;
    gap:12px;
  }
  .case-sim-arrow{
    margin:0 auto;
    transform:rotate(90deg);
  }
  .case-sim-panel{
    min-height:unset;
    border-radius:18px;
    padding:16px 14px 14px;
  }
  .case-sim-panel h4{
    font-size:18px;
    margin-bottom:14px;
  }
  .case-sim-panel li,
  .case-sim-total,
  .case-sim-highlight{
    font-size:16px;
    min-height:42px;
  }
  .case-sim-note{
    margin-top:22px;
    font-size:13px;
    line-height:1.75;
  }
}



/* ===== Cases simulation typography tune ===== */
.case-sim-card h3{
  font-size:18px;
  line-height:1.35;
}
.case-sim-panel h4{
  font-size:16px;
  line-height:1.3;
}
.case-sim-panel li{
  font-size:14px;
  line-height:1.3;
  padding:0 10px;
  min-height:40px;
}
.case-sim-total,
.case-sim-highlight{
  font-size:14px;
  line-height:1.3;
  padding:0 10px;
  min-height:46px;
}
@media (max-width: 767px){
  .case-sim-card h3{
    font-size:16px;
  }
  .case-sim-panel h4{
    font-size:15px;
  }
  .case-sim-panel li,
  .case-sim-total,
  .case-sim-highlight{
    font-size:14px;
  }
}


/* ===== Cases simulation exact tune ===== */
.case-sim-grid{
  gap:18px;
}
.case-sim-card{
  padding:20px 14px 14px;
  border-radius:26px;
}
.case-sim-card h3{
  margin:0 0 18px;
  font-size:16px;
  line-height:1.35;
  letter-spacing:0;
}
.case-sim-panels{
  grid-template-columns:minmax(0, 1fr) 30px minmax(0, 1fr);
  gap:4px;
}
.case-sim-panel{
  min-height:0;
  border-radius:18px;
  padding:14px 12px 12px;
}
.case-sim-panel h4{
  margin:0 0 12px;
  font-size:15px;
  line-height:1.3;
}
.case-sim-panel ul{
  gap:8px;
}
.case-sim-panel li{
  border-radius:12px;
  min-height:52px;
  padding:0 12px;
  font-size:13px;
  line-height:1.28;
  font-weight:700;
  white-space:nowrap;
}
.case-sim-panel--after li:first-child{
  white-space:normal;
  line-height:1.35;
  align-items:flex-start;
  padding-top:10px;
  padding-bottom:10px;
}
.case-sim-arrow{
  width:28px;
  height:28px;
  font-size:20px;
  box-shadow:0 6px 12px rgba(255,143,47,.22);
}
.case-sim-total,
.case-sim-highlight{
  margin-top:8px;
  min-height:46px;
  border-radius:14px;
  padding:0 12px;
  font-size:12px;
  line-height:1.25;
  font-weight:800;
  white-space:nowrap;
}
.case-sim-note{
  margin-top:20px;
}
@media (max-width: 767px){
  .case-sim-card{
    padding:18px 14px 14px;
  }
  .case-sim-card h3{
    font-size:15px;
  }
  .case-sim-panel h4{
    font-size:14px;
  }
  .case-sim-panel li,
  .case-sim-total,
  .case-sim-highlight{
    font-size:13px;
  }
}



/* ===== Cases simulation precision v2 ===== */
.case-sim-grid{
  gap:22px;
}
.case-sim-card{
  padding:22px 16px 16px;
  border-radius:28px;
}
.case-sim-card h3{
  margin:0 0 18px;
  font-size:18px;
  line-height:1.35;
  letter-spacing:0;
  font-weight:800;
}
.case-sim-panels{
  grid-template-columns:minmax(0, 1fr) 34px minmax(0, 1fr);
  gap:6px;
  align-items:center;
}
.case-sim-panel{
  min-height:260px;
  border-radius:20px;
  padding:16px 14px 14px;
}
.case-sim-panel h4{
  margin:0 0 14px;
  font-size:18px;
  line-height:1.3;
  font-weight:800;
}
.case-sim-panel ul{
  gap:10px;
}
.case-sim-panel li{
  border-radius:14px;
  min-height:48px;
  padding:0 14px;
  font-size:14px;
  line-height:1.25;
  font-weight:700;
  white-space:nowrap;
}
.case-sim-panel--after li:first-child{
  white-space:normal;
  line-height:1.3;
  align-items:center;
  padding-top:10px;
  padding-bottom:10px;
  min-height:60px;
}
.case-sim-arrow{
  width:36px;
  height:36px;
  font-size:22px;
  box-shadow:0 6px 14px rgba(255,143,47,.24);
}
.case-sim-total,
.case-sim-highlight{
  margin-top:10px;
  min-height:48px;
  border-radius:16px;
  padding:0 14px;
  font-size:13px;
  line-height:1.22;
  font-weight:800;
  white-space:nowrap;
}
@media (max-width: 767px){
  .case-sim-card{
    padding:18px 14px 14px;
  }
  .case-sim-card h3{
    font-size:16px;
    margin-bottom:16px;
  }
  .case-sim-panel{
    min-height:unset;
    padding:14px 12px 12px;
  }
  .case-sim-panel h4{
    font-size:16px;
  }
  .case-sim-panel li,
  .case-sim-total,
  .case-sim-highlight{
    font-size:13px;
  }
}

/* ===== Cases simulation width ratio tune ===== */
#cases .container{
  width:min(1720px, calc(100% - 56px));
  max-width:none;
}
.case-sim-grid{
  gap:22px;
}
.case-sim-card{
  padding:22px 16px 16px;
}
.case-sim-panels{
  grid-template-columns:minmax(0, 1fr) 34px minmax(0, 1fr);
  gap:6px;
}
.case-sim-panel{
  padding:16px 14px 14px;
}
.case-sim-panel li{
  padding:0 14px;
}
.case-sim-total,
.case-sim-highlight{
  padding:0 14px;
}

@media (max-width: 1400px){
  #cases .container{
    width:min(100%, calc(100% - 36px));
  }
  .case-sim-panels{
    grid-template-columns:minmax(0, 1fr) 30px minmax(0, 1fr);
    gap:6px;
  }
}

@media (max-width: 767px){
  #cases .container{
    width:min(100%, calc(100% - 24px));
  }
  .case-sim-panels{
    grid-template-columns:1fr;
    gap:12px;
  }
}


/* ===== Cases heading leading / vertical position tune ===== */
.case-sim-card h3{
  line-height:1.22;
  margin:0 0 14px;
}
.case-sim-panel{
  padding-top:14px;
  padding-bottom:12px;
}
.case-sim-panel h4{
  margin:0 0 10px;
}
.case-sim-panel ul{
  gap:8px;
}
.case-sim-panel li{
  min-height:44px;
}
.case-sim-total,
.case-sim-highlight{
  margin-top:8px;
}
@media (max-width: 767px){
  .case-sim-card h3{
    line-height:1.24;
    margin:0 0 12px;
  }
  .case-sim-panel{
    padding-top:13px;
    padding-bottom:11px;
  }
  .case-sim-panel h4{
    margin:0 0 9px;
  }
}


/* ===== Support heading centered restore ===== */
.support-head.center{
  text-align:center;
}
.support-head.center .eyebrow-support-note,
.support-head.center h2{
  text-align:center;
}


/* ===== Voice unused element cleanup ===== */
.voice-card .voice-avatar,
.voice-card .voice-media,
.voice-card .voice-thumb,
.voice-card .voice-figure{
  display:none !important;
}
.voice-card::before,
.voice-card::after{
  content:none !important;
}


/* ===== Voice meta cleanup ===== */
.voice-meta,
.voice-label{
  display:none !important;
}



/* ===== Voice heading 90 percent ===== */
.voice-card h3{
  font-size:95%;
}



/* ===== Comparison section ===== */
.comparison-section{
  background:#f5f7fa;
  color:#1f3158;
  padding-top:88px;
  padding-bottom:78px;
}
.comparison-head{
  text-align:center;
}
.comparison-head .eyebrow{
  color:#b79b63;
  letter-spacing:.16em;
}
.comparison-head h2{
  color:#1f3158;
  margin-bottom:18px;
}
.comparison-intro{
  margin:0 auto 30px;
  max-width:860px;
  color:#5f6f8a;
  font-size:16px;
  line-height:1.85;
  font-weight:600;
}
.comparison-table-wrap{
  overflow-x:auto;
  padding-bottom:8px;
}
.comparison-table{
  min-width:1240px;
  display:grid;
  grid-template-columns:1.08fr 1fr 1fr 1fr;
  border:1px solid rgba(31,49,88,.12);
  border-radius:26px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 10px 24px rgba(31,49,88,.05);
}
.comparison-cell{
  position:relative;
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px 16px;
  font-size:20px;
  line-height:1.35;
  font-weight:800;
  color:#1f3158;
  border-right:1px solid rgba(31,49,88,.14);
  border-bottom:1px solid rgba(31,49,88,.14);
  text-align:center;
}
.comparison-cell:nth-child(4n){
  border-right:none;
}
.comparison-table > .comparison-cell:nth-last-child(-n+4){
  border-bottom:none;
}
.comparison-cell--corner,
.comparison-cell--label{
  background:#b1b6be;
  color:#fff;
}
.comparison-cell--corner{
  min-height:126px;
}
.comparison-cell--label{
  justify-content:center;
  font-size:20px;
  font-weight:800;
}
.comparison-cell--featured{
  background:#f8fafc;
}
.comparison-cell--a{
  background:#cbeef2;
}
.comparison-cell--b{
  background:#edf4f7;
}
.comparison-cell--featured-head{
  min-height:126px;
  flex-direction:column;
  gap:6px;
  border-left:2px solid #ff7a33;
  border-right:2px solid #ff7a33;
  background:#f8fafc;
}
.comparison-table > .comparison-cell--featured-head{
  border-top:2px solid #ff7a33;
}
.comparison-table > .comparison-cell--featured:nth-of-type(6),
.comparison-table > .comparison-cell--featured:nth-of-type(10),
.comparison-table > .comparison-cell--featured:nth-of-type(14){
  border-left:2px solid #ff7a33;
  border-right:2px solid #ff7a33;
}
.comparison-table > .comparison-cell--featured.is-featured-last{
  border-bottom:2px solid #ff7a33;
}
.comparison-badge{
  position:absolute;
  top:0;
  left:0;
  width:66px;
  height:66px;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  padding:9px 0 0 7px;
  font-size:16px;
  line-height:1;
  font-weight:800;
  color:#fff;
  background:#ff6d2a;
  clip-path:polygon(0 0, 100% 0, 0 100%);
  transform:translate(-1px, -1px);
  writing-mode:vertical-rl;
  text-orientation:mixed;
}
.comparison-featured-mark{
  color:#ff8f2f;
  font-size:24px;
  line-height:1;
}
.comparison-company{
  color:#ff6d2a;
  font-size:20px;
  font-weight:800;
  line-height:1.2;
}
.comparison-main{
  color:#ff6d2a;
  font-size:44px;
  font-weight:900;
  line-height:1.05;
}
.comparison-cell--company{
  min-height:126px;
  font-size:24px;
}
.comparison-cell--value-strong{
  color:#ff6d2a;
}
.comparison-arrow{
  position:absolute;
  right:-18px;
  top:50%;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  border-radius:999px;
  background:linear-gradient(180deg, #ffb05e 0%, #ff9237 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:22px;
  line-height:1;
  box-shadow:0 6px 14px rgba(255,143,47,.20);
  z-index:2;
}
.comparison-note{
  margin:22px 0 0;
  text-align:center;
  color:#7d8796;
  font-size:14px;
  line-height:1.8;
  font-weight:600;
}

@media (max-width: 767px){
  .comparison-section{
    padding-top:56px;
    padding-bottom:50px;
  }
  .comparison-intro{
    font-size:14px;
    line-height:1.8;
    margin-bottom:20px;
  }
  .comparison-table{
    min-width:920px;
    border-radius:20px;
  }
  .comparison-cell{
    min-height:68px;
    padding:12px 10px;
    font-size:17px;
  }
  .comparison-cell--corner,
  .comparison-cell--company,
  .comparison-cell--featured-head{
    min-height:102px;
  }
  .comparison-main{
    font-size:34px;
  }
  .comparison-company{
    font-size:17px;
  }
  .comparison-arrow{
    width:30px;
    height:30px;
    right:-15px;
    font-size:18px;
  }
  .comparison-note{
    font-size:13px;
    line-height:1.75;
  }
}


/* ===== Comparison overflow / brown tune ===== */
.comparison-table-wrap{
  overflow-x:hidden;
}
.comparison-table{
  min-width:0;
  width:100%;
  grid-template-columns:1.12fr 1fr .95fr .62fr;
}
.comparison-cell--corner,
.comparison-cell--label{
  background:#b1b6be;
}
.comparison-arrow{
  right:-16px;
}
@media (max-width: 1200px){
  .comparison-table-wrap{
    overflow-x:auto;
  }
  .comparison-table{
    min-width:1040px;
    width:auto;
    grid-template-columns:1.08fr 1fr 1fr .86fr;
  }
}
@media (max-width: 767px){
  .comparison-table-wrap{
    overflow-x:auto;
  }
  .comparison-table{
    min-width:920px;
    width:auto;
    grid-template-columns:1.05fr 1fr 1fr .9fr;
  }
}


/* ===== Comparison equal columns ===== */
.comparison-table{
  min-width:0;
  width:100%;
  grid-template-columns:repeat(4, minmax(0, 1fr));
}
@media (max-width: 1200px){
  .comparison-table{
    min-width:1040px;
    width:auto;
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 767px){
  .comparison-table{
    min-width:920px;
    width:auto;
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }
}


/* ===== Comparison font tune ===== */
.comparison-head h2{
  font-size:32px;
}
.comparison-intro{
  font-size:15px;
}
.comparison-cell{
  font-size:17px;
}
.comparison-cell--label{
  font-size:18px;
}
.comparison-cell--company{
  font-size:20px;
}
.comparison-company{
  font-size:18px;
}
.comparison-main{
  font-size:42px;
}
.comparison-note{
  font-size:13px;
}
@media (max-width: 767px){
  .comparison-head h2{
    font-size:28px;
  }
  .comparison-intro{
    font-size:14px;
  }
  .comparison-cell{
    font-size:15px;
  }
  .comparison-cell--label{
    font-size:16px;
  }
  .comparison-cell--company{
    font-size:18px;
  }
  .comparison-company{
    font-size:16px;
  }
  .comparison-main{
    font-size:34px;
  }
  .comparison-note{
    font-size:12px;
  }
}


/* ===== Comparison main text slight tune ===== */
.comparison-main{
  font-size:38px;
}
@media (max-width: 767px){
  .comparison-main{
    font-size:32px;
  }
}


/* ===== Comparison text weight normal ===== */
.comparison-intro{
  font-weight:400;
}
.comparison-note{
  font-weight:400;
}


/* ===== Bank network section ===== */
.bank-network-section{
  background:#f4f7fb;
  padding-top:90px;
  padding-bottom:92px;
  overflow:hidden;
}
.bank-network-wrap{
  width:min(100%, 2000px);
  max-width:none;
}
.bank-network-head{
  text-align:center;
}
.bank-network-head .eyebrow{
  color:#8a8f99;
  letter-spacing:.26em;
}
.bank-network-head h2{
  color:#2f3134;
  margin-bottom:22px;
}
.bank-network-intro{
  margin:0 auto 34px;
  max-width:1040px;
  color:#3d424a;
  font-size:17px;
  line-height:1.8;
  font-weight:600;
}
.bank-network-rows{
  display:grid;
  gap:26px;
}
.bank-network-row{
  display:flex;
  gap:22px;
  min-width:max-content;
  width:max-content;
  padding:0 12px;
  animation-duration:26s;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
}
.bank-network-row--top{
  animation-name:bankRowScrollLeft;
}
.bank-network-row--bottom{
  animation-name:bankRowScrollRight;
}
.bank-card{
  flex:0 0 486px;
  height:120px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(190,208,234,.9);
  box-shadow:0 8px 18px rgba(31,49,88,.04);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:0 28px;
}
.bank-card-copy{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.bank-card-name{
  color:#1f3d77;
  font-size:24px;
  line-height:1.25;
  font-weight:800;
}
.bank-card-type{
  color:#5f83c4;
  font-size:14px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.06em;
}
.bank-card-chip{
  width:64px;
  height:64px;
  margin-right:18px;
  border-radius:18px;
  background:
    linear-gradient(135deg, transparent 50%, #1e55b4 50%) center / 26px 26px no-repeat,
    linear-gradient(315deg, transparent 50%, #4c8ef0 50%) center / 26px 26px no-repeat,
    linear-gradient(#dfeafb, #dfeafb);
  box-shadow:inset 0 0 0 1px rgba(95,131,196,.12);
}

@keyframes bankRowScrollLeft{
  from{ transform:translateX(0); }
  to{ transform:translateX(-22%); }
}
@keyframes bankRowScrollRight{
  from{ transform:translateX(-22%); }
  to{ transform:translateX(0); }
}

@media (prefers-reduced-motion: reduce){
  .bank-network-row{
    animation:none;
  }
}

@media (max-width: 767px){
  .bank-network-section{
    padding-top:58px;
    padding-bottom:62px;
  }
  .bank-network-intro{
    font-size:14px;
    line-height:1.8;
    margin-bottom:24px;
  }
  .bank-network-rows{
    gap:18px;
  }
  .bank-network-row{
    gap:14px;
    padding:0 8px;
    animation-duration:26s;
  }
  .bank-card{
    flex:0 0 318px;
    height:92px;
    padding:0 18px;
    border-radius:20px;
  }
  .bank-card-chip{
    width:48px;
    height:48px;
    margin-right:14px;
    border-radius:14px;
    background-size:20px 20px, 20px 20px, auto;
  }
  .bank-card-name{
    font-size:18px;
  }
  .bank-card-type{
    font-size:12px;
  }
}


/* ===== Bank network row order refinement ===== */
.bank-network-row{
  animation-duration:42s;
}
.bank-network-row--top{
  animation-name:bankRowScrollLeft;
}
.bank-network-row--bottom{
  animation-name:bankRowScrollRight;
}
@keyframes bankRowScrollLeft{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
@keyframes bankRowScrollRight{
  from{ transform:translateX(-50%); }
  to{ transform:translateX(0); }
}
@media (max-width: 767px){
  .bank-network-row{
    animation-duration:26s;
  }
}


/* ===== Bank card slight size tune ===== */
.bank-card{
  flex:0 0 438px;
  height:108px;
  border-radius:22px;
  padding:0 24px;
}
.bank-card-chip{
  width:58px;
  height:58px;
  margin-right:16px;
  border-radius:16px;
}
.bank-card-name{
  font-size:22px;
}
.bank-card-type{
  font-size:13px;
}
@media (max-width: 767px){
  .bank-card{
    flex:0 0 296px;
    height:86px;
    padding:0 16px;
    border-radius:18px;
  }
  .bank-card-chip{
    width:44px;
    height:44px;
    margin-right:12px;
    border-radius:13px;
  }
  .bank-card-name{
    font-size:17px;
  }
  .bank-card-type{
    font-size:11px;
  }
}


/* ===== Bank intro and card tune ===== */
.bank-network-intro{
  font-size:15px;
  font-weight:400;
  line-height:1.8;
}
.bank-card{
  flex:0 0 418px;
  height:102px;
  border-radius:21px;
  padding:0 22px;
}
.bank-card-chip{
  width:54px;
  height:54px;
  margin-right:15px;
  border-radius:15px;
}
.bank-card-name{
  font-size:21px;
}
.bank-card-type{
  font-size:12px;
}
@media (max-width: 767px){
  .bank-network-intro{
    font-size:13px;
    font-weight:400;
    line-height:1.78;
  }
  .bank-card{
    flex:0 0 284px;
    height:82px;
    padding:0 15px;
    border-radius:17px;
  }
  .bank-card-chip{
    width:42px;
    height:42px;
    margin-right:11px;
    border-radius:12px;
  }
  .bank-card-name{
    font-size:16px;
  }
  .bank-card-type{
    font-size:10px;
  }
}


/* ===== Bank card slight size tune 2 ===== */
.bank-card{
  flex:0 0 398px;
  height:98px;
  border-radius:20px;
  padding:0 20px;
}
.bank-card-chip{
  width:50px;
  height:50px;
  margin-right:14px;
  border-radius:14px;
}
.bank-card-name{
  font-size:20px;
}
.bank-card-type{
  font-size:11px;
}
@media (max-width: 767px){
  .bank-card{
    flex:0 0 272px;
    height:78px;
    padding:0 14px;
    border-radius:16px;
  }
  .bank-card-chip{
    width:40px;
    height:40px;
    margin-right:10px;
    border-radius:11px;
  }
  .bank-card-name{
    font-size:15px;
  }
  .bank-card-type{
    font-size:10px;
  }
}



/* ===== Bank network stable autoscroll ===== */
.bank-network-row{
  animation-play-state:running;
  will-change:transform;
}








/* ===== Bank network hover scope fix ===== */
.bank-network-row{
  animation-play-state:running;
  will-change:transform;
}


/* ===== Contact form section ===== */
.contact-form-section{
  background:#f6f8fb;
  padding-top:94px;
  padding-bottom:82px;
}
.contact-form-head{
  text-align:center;
}
.contact-form-head .eyebrow{
  color:#8e9097;
  letter-spacing:.24em;
}
.contact-form-head h2{
  color:#2f3134;
  margin-bottom:26px;
}
.contact-form-intro{
  max-width:980px;
  margin:0 auto 38px;
  color:#3b3f46;
  font-size:17px;
  line-height:1.9;
  text-align:center;
  font-weight:600;
}
.consult-form{
  width:min(100%, 1180px);
  margin:0 auto;
}
.consult-row{
  display:grid;
  grid-template-columns:260px 1fr;
  align-items:center;
  border-top:1px solid rgba(47,49,52,.16);
  padding:10px 0;
}
.consult-row:last-of-type{
  border-bottom:1px solid rgba(47,49,52,.16);
}
.consult-row--textarea{
  align-items:stretch;
}
.consult-label{
  color:#2f3134;
  font-size:20px;
  line-height:1.5;
  font-weight:800;
  text-align:center;
  padding:12px 18px;
}
.required{
  color:#ff6f7a;
  margin-left:2px;
}
.consult-field{
  padding:0 14px 0 18px;
}
.consult-field input,
.consult-field select,
.consult-field textarea{
  width:100%;
  border:1px solid #c6d6ef;
  background:#fff;
  border-radius:18px;
  color:#2f3134;
  font-size:16px;
  line-height:1.5;
  padding:14px 18px;
  outline:none;
  box-sizing:border-box;
}
.consult-field input::placeholder,
.consult-field textarea::placeholder{
  color:#a8abb3;
}
.consult-field select{
  height:50px;
  padding-top:0;
  padding-bottom:0;
}
.consult-row--textarea .consult-field textarea{
  min-height:164px;
  resize:vertical;
}
.consult-field--short{
  max-width:380px;
}
.field-inline{
  display:flex;
  align-items:center;
  gap:10px;
}
.field-inline input{
  width:188px;
}
.field-unit{
  color:#2f3134;
  font-size:16px;
  font-weight:700;
}
.privacy-box{
  margin-top:34px;
  padding:22px 22px 18px;
  border-radius:22px;
  border:1px solid #c6d6ef;
  background:#f8fbff;
}
.privacy-title{
  margin:0 0 12px;
  color:#12336a;
  font-size:20px;
  line-height:1.5;
  font-weight:800;
}
.privacy-content{
  padding:18px 20px;
  border-radius:18px;
  border:1px solid #c6d6ef;
  background:#fff;
}
.privacy-content p{
  margin:0;
  color:#4d5a70;
  font-size:16px;
  line-height:1.9;
  font-weight:600;
}
.privacy-content p + p{
  margin-top:10px;
}
.privacy-check{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:14px;
  color:#2f3134;
  font-size:16px;
  line-height:1.6;
  font-weight:700;
}
.privacy-check input{
  width:18px;
  height:18px;
}
.consult-submit{
  display:flex;
  justify-content:center;
  margin-top:20px;
}
.consult-submit-btn{
  min-width:248px;
  height:60px;
  border:none;
  border-radius:999px;
  background:linear-gradient(90deg, #4685e6 0%, #6fd9dd 100%);
  color:#fff;
  font-size:18px;
  line-height:1;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(61,122,222,.20);
}

@media (max-width: 767px){
  .contact-form-section{
    padding-top:60px;
    padding-bottom:54px;
  }
  .contact-form-intro{
    font-size:14px;
    line-height:1.85;
    margin-bottom:24px;
  }
  .consult-row{
    grid-template-columns:1fr;
    gap:6px;
    padding:12px 0;
  }
  .consult-label{
    text-align:left;
    padding:0 4px;
    font-size:17px;
  }
  .consult-field{
    padding:0;
  }
  .consult-field input,
  .consult-field select,
  .consult-field textarea{
    font-size:15px;
    border-radius:14px;
    padding:13px 15px;
  }
  .consult-field--short{
    max-width:none;
  }
  .field-inline input{
    width:100%;
  }
  .privacy-box{
    margin-top:24px;
    padding:18px 16px 16px;
    border-radius:18px;
  }
  .privacy-title{
    font-size:17px;
  }
  .privacy-content{
    padding:14px 14px;
    border-radius:14px;
  }
  .privacy-content p{
    font-size:14px;
    line-height:1.8;
  }
  .privacy-check{
    font-size:14px;
  }
  .consult-submit-btn{
    min-width:220px;
    height:54px;
    font-size:17px;
  }
}


/* ===== Contact form typography tune ===== */
.contact-form-intro{
  font-size:15px;
  line-height:1.8;
  font-weight:400;
}
.consult-label{
  font-size:18px;
}
.consult-field input,
.consult-field select,
.consult-field textarea{
  font-size:15px;
}
.field-unit{
  font-size:15px;
}
.privacy-title{
  font-size:18px;
}
.privacy-content p{
  font-size:15px;
  line-height:1.85;
  font-weight:400;
}
.privacy-check{
  font-size:15px;
}
.consult-submit-btn{
  font-size:17px;
}
@media (max-width: 767px){
  .contact-form-intro{
    font-size:13px;
    line-height:1.8;
    font-weight:400;
  }
  .consult-label{
    font-size:16px;
  }
  .consult-field input,
  .consult-field select,
  .consult-field textarea{
    font-size:14px;
  }
  .field-unit{
    font-size:14px;
  }
  .privacy-title{
    font-size:16px;
  }
  .privacy-content p{
    font-size:13px;
    line-height:1.8;
    font-weight:400;
  }
  .privacy-check{
    font-size:13px;
  }
  .consult-submit-btn{
    font-size:16px;
  }
}


/* ===== Contact form actual typography fix ===== */
.contact-form-section .contact-form-intro{
  font-size:14px !important;
  line-height:1.85 !important;
  font-weight:400 !important;
}
.contact-form-section .contact-form-intro .contact-form-line{
  display:block !important;
  white-space:normal !important;
}
.contact-form-section .contact-form-intro .contact-form-line + .contact-form-line{
  margin-top:2px !important;
}

.contact-form-section .consult-label{
  font-size:16px !important;
  line-height:1.45 !important;
}
.contact-form-section .consult-field input,
.contact-form-section .consult-field select,
.contact-form-section .consult-field textarea{
  font-size:14px !important;
  line-height:1.5 !important;
}
.contact-form-section .consult-field input::placeholder,
.contact-form-section .consult-field textarea::placeholder{
  font-size:14px !important;
}
.contact-form-section .field-unit{
  font-size:14px !important;
}
.contact-form-section .privacy-title{
  font-size:17px !important;
}
.contact-form-section .privacy-content p{
  font-size:14px !important;
  line-height:1.82 !important;
  font-weight:400 !important;
}
.contact-form-section .privacy-check{
  font-size:14px !important;
  line-height:1.6 !important;
}
.contact-form-section .consult-submit-btn{
  font-size:16px !important;
}

@media (max-width: 767px){
  .contact-form-section .contact-form-intro{
    font-size:13px !important;
    line-height:1.8 !important;
  }
  .contact-form-section .consult-label{
    font-size:15px !important;
  }
  .contact-form-section .consult-field input,
  .contact-form-section .consult-field select,
  .contact-form-section .consult-field textarea{
    font-size:13px !important;
  }
  .contact-form-section .field-unit{
    font-size:13px !important;
  }
  .contact-form-section .privacy-title{
    font-size:15px !important;
  }
  .contact-form-section .privacy-content p{
    font-size:13px !important;
  }
  .contact-form-section .privacy-check{
    font-size:13px !important;
  }
  .contact-form-section .consult-submit-btn{
    font-size:15px !important;
  }
}


/* ===== Flow CTA button ===== */
.flow-cta{
  display:flex;
  justify-content:center;
  margin-top:28px;
}
.flow-cta-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:248px;
  height:58px;
  padding:0 28px;
  border-radius:999px;
  background:linear-gradient(90deg, #46a8b8 0%, #7fd9e3 100%);
  color:#fff;
  font-size:17px;
  line-height:1;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 10px 24px rgba(70,168,184,.18);
}
@media (max-width: 767px){
  .flow-cta{
    margin-top:24px;
  }
  .flow-cta-btn{
    min-width:220px;
    height:52px;
    padding:0 22px;
    font-size:15px;
  }
}




/* ===== Hero CTA navy to form ===== */
.hero-actions .btn.btn-line{
  background:#1f3158;
  border-color:#1f3158;
  color:#fff;
}
.hero-actions .btn.btn-line:hover{
  background:#182746;
  border-color:#182746;
  color:#fff;
}


/* ===== Hero toll-free ===== */
.hero-tollfree{
  margin-top:20px;
  text-align:center;
}
.hero-tollfree-label{
  margin:0 0 6px;
  color:#fff;
  font-size:14px;
  line-height:1.5;
  font-weight:700;
  letter-spacing:.06em;
}
.hero-tollfree-number{
  display:inline-block;
  color:#fff;
  font-size:32px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:.04em;
  text-decoration:none;
}
.hero-tollfree-number:hover{
  color:#fff;
  opacity:.92;
}
@media (max-width: 767px){
  .hero-tollfree{
    margin-top:16px;
  }
  .hero-tollfree-label{
    font-size:12px;
  }
  .hero-tollfree-number{
    font-size:26px;
  }
}


/* ===== Toll-free visibility/header/cta ===== */
.hero-tollfree{
  margin-top:24px;
}
.hero-tollfree-label{
  margin:0 0 8px;
  color:#fff;
  font-size:15px;
  line-height:1.5;
  font-weight:800;
  letter-spacing:.04em;
}
.hero-tollfree-number{
  display:inline-block;
  color:#fff;
  font-size:38px;
  line-height:1.05;
  font-weight:900;
  letter-spacing:.04em;
  text-decoration:none;
  text-shadow:0 4px 14px rgba(0,0,0,.16);
}

.header-tollfree{
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:18px;
  white-space:nowrap;
}
.header-tollfree-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:24px;
  padding:0 8px;
  border-radius:999px;
  background:#1f3158;
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:800;
  letter-spacing:.08em;
}
.header-tollfree-number{
  color:#1f3158;
  font-size:20px;
  line-height:1;
  font-weight:900;
  letter-spacing:.03em;
  text-decoration:none;
}

.cta-tollfree{
  margin-top:24px;
  text-align:center;
}
.cta-tollfree-label{
  margin:0 0 8px;
  color:#1f3158;
  font-size:15px;
  line-height:1.5;
  font-weight:800;
}
.cta-tollfree-number{
  display:inline-block;
  color:#1f3158;
  font-size:40px;
  line-height:1.05;
  font-weight:900;
  letter-spacing:.04em;
  text-decoration:none;
}

@media (max-width: 1024px){
  .header-tollfree{
    margin-left:12px;
  }
  .header-tollfree-number{
    font-size:18px;
  }
}

@media (max-width: 767px){
  .hero-tollfree{
    margin-top:18px;
  }
  .hero-tollfree-label{
    font-size:12px;
  }
  .hero-tollfree-number{
    font-size:30px;
  }

  .header-tollfree{
    gap:8px;
    margin-left:10px;
  }
  .header-tollfree-label{
    min-width:34px;
    height:22px;
    font-size:10px;
  }
  .header-tollfree-number{
    font-size:15px;
  }

  .cta-tollfree{
    margin-top:20px;
  }
  .cta-tollfree-label{
    font-size:13px;
  }
  .cta-tollfree-number{
    font-size:30px;
  }
}


/* ===== CTA toll-free white ===== */
.cta-tollfree-number{
  color:#fff !important;
}
.cta-tollfree-number:hover{
  color:#fff !important;
}


/* ===== Hero mobile refined ===== */
@media (max-width: 767px){
  .hero{
    background-position:center center;
    background-size:cover;
    background-repeat:no-repeat;
  }

  .hero-content{
    min-height:100svh;
    place-items:start center;
    padding-top:86px;
    padding-bottom:30px;
  }

  .hero-stack--support{
    width:100%;
    transform:none;
  }

  .hero-copy-panel--support{
    padding:26px 20px 24px;
  }

  .hero h1{
    margin:0 0 14px;
    font-size:32px;
    line-height:1.26;
    letter-spacing:.02em;
    text-wrap:pretty;
  }

  .hero-copy-panel--support .hero-title-line{
    white-space:normal;
  }

  .hero-lead-support{
    margin-top:14px;
  }

  .hero-lead-emphasis{
    display:block;
    width:100%;
    margin-bottom:8px;
    padding:7px 10px;
    text-align:center;
    font-size:13px;
    line-height:1.55;
  }

  .hero .lead{
    font-size:14px;
    line-height:1.72;
  }

  .hero .lead-line{
    white-space:normal;
  }

  .eyebrow-support{
    margin-bottom:14px;
    font-size:10px;
    line-height:1.65;
    letter-spacing:.10em;
  }

  .hero-benefits{
    margin-top:18px;
    gap:10px;
  }

  .hero-benefits li{
    min-height:44px;
    padding:10px 12px;
    font-size:12px;
    line-height:1.45;
  }

  .hero-actions--support{
    margin-top:16px;
    gap:10px;
  }

  .hero-actions--support .btn{
    min-height:54px;
    width:100%;
    padding:0 16px;
    font-size:15px;
  }

  .hero-tollfree{
    margin-top:16px;
  }

  .hero-tollfree-label{
    margin-bottom:6px;
    font-size:11px;
    line-height:1.45;
  }

  .hero-tollfree-number{
    font-size:24px;
    line-height:1.08;
  }

  .scroll-indicator{
    bottom:12px;
    font-size:9px;
    letter-spacing:.28em;
  }

  .scroll-indicator::after{
    height:42px;
  }

  .scroll-indicator::before{
    top:24px;
  }
}


/* ===== Hero overlap fix ===== */
.hero{
  min-height:108vh;
}
.hero-content{
  min-height:108vh;
  padding-bottom:110px;
}
.hero-tollfree{
  margin-top:22px;
  padding-bottom:18px;
}
.scroll-indicator{
  bottom:28px;
}

@media (max-width: 1024px){
  .hero{
    min-height:112vh;
  }
  .hero-content{
    min-height:112vh;
    padding-bottom:118px;
  }
  .scroll-indicator{
    bottom:24px;
  }
}

@media (max-width: 767px){
  .hero{
    min-height:118svh;
  }
  .hero-content{
    min-height:118svh;
    padding-bottom:126px;
  }
  .hero-tollfree{
    margin-top:18px;
    padding-bottom:26px;
  }
  .hero-tollfree-number{
    font-size:22px;
  }
  .scroll-indicator{
    bottom:18px;
  }
  .scroll-indicator::after{
    height:34px;
  }
  .scroll-indicator::before{
    top:20px;
  }
}


/* ===== Hero bottom gap fix ===== */
.hero{
  margin-bottom:0;
}
.hero-content{
  padding-bottom:96px;
}
.scroll-indicator{
  bottom:14px;
}

@media (max-width: 1024px){
  .hero-content{
    padding-bottom:104px;
  }
  .scroll-indicator{
    bottom:12px;
  }
}

@media (max-width: 767px){
  .hero{
    min-height:112svh;
  }
  .hero-content{
    min-height:112svh;
    padding-bottom:110px;
  }
  .hero-tollfree{
    padding-bottom:18px;
  }
  .scroll-indicator{
    bottom:10px;
  }
  .scroll-indicator::after{
    height:28px;
  }
  .scroll-indicator::before{
    top:18px;
  }
}


/* ===== Hero PC cover fix ===== */
.hero{
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}

.hero-content{
  min-height:100vh;
  padding-bottom:96px;
}

.scroll-indicator{
  bottom:14px;
}

@media (max-width: 1024px){
  .hero{
    background-position:center center;
    background-size:cover;
  }
  .hero-content{
    min-height:104vh;
    padding-bottom:104px;
  }
  .scroll-indicator{
    bottom:12px;
  }
}

@media (max-width: 767px){
  .hero{
    min-height:112svh;
    background-position:center center;
    background-size:cover;
  }
  .hero-content{
    min-height:112svh;
    padding-bottom:110px;
  }
}


/* ===== Hero tollfree mobile bigger ===== */
@media (max-width: 767px){
  .hero-tollfree-number{
    font-size:28px !important;
    line-height:1.06 !important;
    letter-spacing:.03em !important;
  }
}


/* ===== Hero tollfree mobile bigger again ===== */
@media (max-width: 767px){
  .hero-tollfree-number{
    font-size:32px !important;
    line-height:1.04 !important;
    letter-spacing:.02em !important;
  }
}


/* ===== Hero tollfree mobile 150 ===== */
@media (max-width: 767px){
  .hero-tollfree-number{
    font-size:48px !important;
    line-height:1.02 !important;
    letter-spacing:.01em !important;
  }
}










/* ===== SP menu rebuild clean ===== */
@media (max-width: 767px){
  .header-tollfree{
    display:none;
  }

  .site-header.is-open .header-tollfree{
    position:fixed;
    left:20px;
    right:20px;
    z-index:31;
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 22px;
    margin:0;
    white-space:nowrap;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }

  .site-header.is-open .header-tollfree-label{
    background:rgba(255,255,255,.14);
    color:#fff;
  }

  .site-header.is-open .header-tollfree-number{
    color:#fff;
    font-size:18px;
    line-height:1;
    font-weight:900;
    letter-spacing:.02em;
    text-decoration:none;
  }

  .site-header.is-open .header-actions{
    gap:14px;
  }

  .site-header.is-open .header-actions .btn{
    width:100%;
    min-height:56px;
    border-radius:18px;
    font-size:15px;
  }
}


/* ===== Header tollfree PC white ===== */
.header-tollfree-number{
  color:#fff;
}
.header-tollfree-number:hover{
  color:#fff;
}




/* ===== Background and flow overflow strict fix ===== */

/* 3 section background separation: force apply */
.comparison-section{
  background:#f6f8fb !important;
}
.bank-network-section{
  background:#eef4f8 !important;
}
.flow-section{
  background:#f7f5ef !important;
}

/* flow section typography + overflow control */
.flow-section .flow-wrap{
  overflow:visible;
}
.flow-section .flow-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:24px;
}
.flow-section .flow-step{
  min-width:0;
  overflow:visible;}
.flow-section .flow-step h3{
  font-size:22px !important;
  line-height:1.34 !important;
  letter-spacing:.01em;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.flow-section .flow-step p:last-child{
  font-size:13px !important;
  line-height:1.82 !important;
  color:#667791;
}
.flow-section .flow-step-sub{
  font-size:13px !important;
  line-height:1.7 !important;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.flow-section .flow-intro{
  max-width:980px;
  margin-left:auto;
  margin-right:auto;
}
.flow-section .flow-line,
.flow-section .flow-body-line{
  display:block !important;
  white-space:normal !important;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.flow-section .flow-step *{
  max-width:100%;
  box-sizing:border-box;
}
.flow-section .flow-step .step-no{
  white-space:nowrap;
}

@media (max-width: 1180px){
  .flow-section .flow-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:22px;
  }
}

@media (max-width: 767px){
  .flow-section .flow-grid{
    grid-template-columns:1fr;
    gap:18px;
  }
  .flow-section .flow-step h3{
    font-size:20px !important;
    line-height:1.35 !important;
  }
  .flow-section .flow-step p:last-child{
    font-size:13px !important;
    line-height:1.8 !important;
  }
  .flow-section .flow-step-sub{
    font-size:12px !important;
  }
}


/* ===== Reapply office faq contact fix ===== */

/* 3 section background separation requested before */
.office-section{
  background:#f4f6fa !important;
}
.faq-section{
  background:#f7f5ef !important;
}
.contact-form-section{
  background:#eef4f8 !important;
}

/* Eyebrow color alignment */
.bank-network-section .eyebrow{
  color:#b79a5f !important;
}
.contact-form-section .eyebrow{
  color:#b79a5f !important;
}

/* FAQ eyebrow centered */
.faq-section .eyebrow{
  display:block;
  width:100%;
  text-align:center !important;
  margin-left:auto;
  margin-right:auto;
}
.faq-section .section-head,
.faq-section .faq-head,
.faq-section .container > .eyebrow{
  text-align:center !important;
}


/* ===== Pagewide scroll motion ===== */
.js-reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .72s ease, transform .72s ease;
  will-change:opacity, transform;
}
.js-reveal.is-revealed{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .js-reveal{
    opacity:1;
    transform:none;
    transition:none;
  }
}




/* ===== Flow arrow real cause fix ===== */
.flow-section .flow-step{
  overflow:visible !important;
}
.flow-section .flow-grid{
  overflow:visible;
}
.flow-section .flow-step:not(:last-child)::after{
  z-index:5;
}




/* ===== Office strict photo and gap fix ===== */

/* Tokyo HQ photo: move much higher so sky is cropped out */
.office-section .location-card-tokyo{
  --loc-image-position: center -140px !important;
}

/* Ensure image obeys the stronger position */
.office-section .location-card-tokyo .location-card-image img{
  object-position: center -140px !important;
}

/* Real gap target:
   office-main = "安心してご相談いただくための配慮" block
   office-location-head = "ご相談拠点" block
*/
.office-section .office-main{
  margin-bottom: 86px !important;
}
.office-section .office-location-head{
  margin-top: 0 !important;
  margin-bottom: 24px !important;
}

@media (max-width: 980px){
  .office-section .location-card-tokyo{
    --loc-image-position: center -90px !important;
  }
  .office-section .location-card-tokyo .location-card-image img{
    object-position: center -90px !important;
  }
  .office-section .office-main{
    margin-bottom: 64px !important;
  }
}

@media (max-width: 767px){
  .office-section .location-card-tokyo{
    --loc-image-position: center -70px !important;
  }
  .office-section .location-card-tokyo .location-card-image img{
    object-position: center -70px !important;
  }
  .office-section .office-main{
    margin-bottom: 48px !important;
  }
}


/* ===== Flow LINE button color fix ===== */
.flow-cta-btn{
  background:#22c55e !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(34,197,94,.18) !important;
}
.flow-cta-btn:hover{
  background:#22c55e !important;
  color:#fff !important;
}


/* ===== Flow LINE button hover motion ===== */
.flow-cta-btn{
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    filter .22s ease,
    background-color .22s ease;
}
.flow-cta-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(34,197,94,.24) !important;
  filter:brightness(1.03);
}
.flow-cta-btn:active{
  transform:translateY(0);
}


/* ===== Hero background brighter ===== */
.hero{
  background-image:
    linear-gradient(rgba(255,255,255,.08), rgba(255,255,255,.08)),
    url("../images/hero_bg_uploaded.jpeg");
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}
.hero-overlay{
  background:linear-gradient(to bottom, rgba(5,16,34,.06), rgba(7,20,42,.16));
}



/* ===== Hero blue background two parts ===== */
.hero-copy-panel--support{
  background:rgba(60, 112, 182, .40) !important;
  border-color:rgba(255,255,255,.18) !important;
}
.hero-actions--support .btn-panel{
  background:rgba(60, 112, 182, .56) !important;
  border-color:rgba(255,255,255,.22) !important;
}
.hero-actions--support .btn-panel:hover{
  background:rgba(60, 112, 182, .66) !important;
  border-color:rgba(255,255,255,.26) !important;
}


/* ===== Hero eyebrow readability fix ===== */
.eyebrow-support{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  padding:14px 18px;
  border-radius:16px;
  background:rgba(10, 28, 58, .38);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}

.eyebrow-support .eyebrow-support-line{
  display:block;
}

@media (max-width: 767px){
  .eyebrow-support{
    padding:10px 14px;
    gap:6px;
    border-radius:14px;
  }
}


/* ===== Hero tollfree readability shadow ===== */
.hero-tollfree-label{
  text-shadow:0 3px 12px rgba(6,18,40,.32), 0 1px 2px rgba(0,0,0,.22);
}
.hero-tollfree-number{
  text-shadow:0 6px 20px rgba(6,18,40,.34), 0 2px 4px rgba(0,0,0,.24);
}




/* ===== Hamburger menu blue tone ===== */
@media (max-width: 767px){
  body.menu-open::before{
    background:#5a9ae0;
  }

  .site-header.is-open .global-nav{
    background:#5a9ae0;
    border:1px solid rgba(255,255,255,.18);
    box-shadow:0 18px 42px rgba(45, 102, 170, .18);
  }

  .site-header.is-open .global-nav a{
    color:rgba(255,255,255,.98);
    border-top:1px solid rgba(255,255,255,.12);
  }

  .site-header.is-open .header-tollfree-label{
    background:rgba(255,255,255,.24);
    color:#fff;
  }

  .site-header.is-open .header-actions .btn-dark{
    background:#4a89d3;
    border-color:rgba(255,255,255,.20);
    color:#fff;
  }
}




/* ===== Comparison note final fix ===== */
.comparison-note{
  display:inline-block;
  margin:26px auto 0 !important;
  padding:10px 18px !important;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(183,154,95,.16);
  border-radius:999px;
  color:#6c7690 !important;
  font-size:14px !important;
  line-height:1.85 !important;
  letter-spacing:.01em;
  text-align:center;
  box-shadow:0 8px 20px rgba(16,38,78,.04);
}
.comparison-note::before{
  content:none !important;
}
@media (max-width: 767px){
  .comparison-note{
    display:block;
    padding:10px 14px !important;
    font-size:13px !important;
    border-radius:18px;
  }
}


/* ===== Comparison note center bold ===== */
.comparison-note{
  display:table !important;
  margin:26px auto 0 !important;
  text-align:center !important;
  font-weight:700 !important;
}




/* ===== Fixed CTA buttons ===== */
.fixed-cta{
  position:fixed;
  left:50%;
  bottom:22px;
  transform:translateX(-50%) translateY(16px);
  z-index:29;
  display:flex;
  gap:16px;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:
    opacity .28s ease,
    transform .28s ease,
    visibility .28s ease,
    bottom .22s ease;
}
.fixed-cta.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.fixed-cta-btn{
  min-width:292px;
  min-height:66px;
  padding:0 28px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0;
  font-size:18px;
  font-weight:800;
  line-height:1;
  letter-spacing:.01em;
  text-decoration:none;
  box-shadow:0 16px 32px rgba(10, 24, 48, .16);
  transition:transform .22s ease, box-shadow .22s ease, filter .22s ease, background-color .22s ease;
  border:1px solid rgba(255,255,255,.18);
  -webkit-font-smoothing:antialiased;
}
.fixed-cta-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 36px rgba(10, 24, 48, .20);
  filter:brightness(1.02);
}
.fixed-cta-btn:active{
  transform:translateY(0);
}
.fixed-cta-btn--line{
  background:#22c55e;
  color:#fff;
}
.fixed-cta-btn--mail{
  background:linear-gradient(135deg, #4f8ef5 0%, #3b73dd 100%);
  color:#fff;
}
.site-footer{
  position:relative;
  z-index:30;
}

@media (max-width: 1100px){
  .fixed-cta{
    gap:12px;
    bottom:18px;
  }
  .fixed-cta-btn{
    min-width:240px;
    min-height:58px;
    font-size:16px;
    padding:0 22px;
  }
}

@media (max-width: 767px){
  .fixed-cta{
    left:16px;
    right:16px;
    bottom:14px;
    transform:translateY(16px);
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .fixed-cta.is-visible{
    transform:translateY(0);
  }
  .fixed-cta-btn{
    min-width:0;
    width:100%;
    min-height:54px;
    padding:0 14px;
    font-size:15px;
    border-radius:999px;
    box-shadow:0 14px 26px rgba(10, 24, 48, .16);
  }
}


/* ===== PC hero header gap fix ===== */
@media (min-width: 768px){
  .hero-copy-panel--support{
    margin-top:34px !important;
  }
}


/* ===== Hero SP background swap ===== */
@media (max-width: 767px){
  .hero{
    background-image:
      linear-gradient(rgba(255,255,255,.08), rgba(255,255,255,.08)),
      url("../images/hero_sp.jpg");
    background-position:center center;
    background-size:cover;
    background-repeat:no-repeat;
  }
}


/* ===== Support section background red ===== */
.support-section{
  background:
    radial-gradient(circle at top right, rgba(233, 112, 112, .10), transparent 34%),
    linear-gradient(180deg, #fff8f7 0%, #fff2f1 48%, #fff8f7 100%) !important;
}


/* ===== Restart section ===== */
.restart-section{
  background:
    radial-gradient(circle at top right, rgba(233, 112, 112, .10), transparent 34%),
    linear-gradient(180deg, #fff8f7 0%, #fff2f1 48%, #fff8f7 100%) !important;
}

.restart-wrap{
  max-width:1120px;
}

.restart-head{
  max-width:920px;
  margin:0 auto 34px;
}

.restart-head h2{
  margin-bottom:16px;
  color:#10264e;
  line-height:1.45;
}

.restart-intro{
  max-width:760px;
  margin:0 auto;
  color:#63748d;
  font-size:15px;
  line-height:1.95;
}

.restart-hero{
  margin:0 auto 34px;
}

.restart-hero-image{
  overflow:hidden;
  border-radius:26px;
  border:1px solid rgba(17,38,74,.08);
  background:#eef2f6;
  box-shadow:0 18px 42px rgba(17,33,58,.08);
}

.restart-hero-image img{
  display:block;
  width:100%;
  height:auto;
}

.restart-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
}

.restart-card{
  position:relative;
  padding:28px 26px 24px;
  border-radius:22px;
  border:1px solid rgba(17,38,74,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(249,250,252,.98) 100%);
  box-shadow:0 14px 34px rgba(17,33,58,.06);
}

.restart-card-index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:42px;
  padding:0 12px;
  margin-bottom:16px;
  border-radius:999px;
  background:rgba(201,171,106,.10);
  border:1px solid rgba(201,171,106,.24);
  color:#a17836;
  font-family:"Noto Serif JP", serif;
  font-size:14px;
  font-weight:700;
  line-height:1;
}

.restart-card h3{
  margin:0 0 12px;
  color:#10264e;
  font-size:25px;
  line-height:1.5;
  letter-spacing:.02em;
}

.restart-card p{
  margin:0;
  color:#586a82;
  font-size:14px;
  line-height:1.9;
}

.restart-message{
  max-width:980px;
  margin:28px auto 0;
  padding:22px 26px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(16,38,78,.05) 0%, rgba(16,38,78,.08) 100%);
  border:1px solid rgba(17,38,74,.08);
  box-shadow:0 12px 28px rgba(17,33,58,.04);
  text-align:center;
}

.restart-message p{
  margin:0;
  color:#20385f;
  font-size:16px;
  line-height:1.9;
  font-weight:700;
}
@media (max-width:980px){
  .restart-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:767px){
  .restart-head{
    margin-bottom:26px;
  }

  .restart-intro{
    font-size:14px;
    line-height:1.9;
  }

  .restart-hero{
    margin-bottom:26px;
  }

  .restart-hero-image{
    border-radius:18px;
  }

  .restart-grid{
    gap:16px;
  }

  .restart-card{
    padding:22px 18px 20px;
    border-radius:18px;
  }

  .restart-card h3{
    font-size:21px;
    line-height:1.45;
  }

  .restart-card p{
    font-size:13px;
    line-height:1.85;
  }

  .restart-message{
    margin-top:20px;
    padding:18px 16px;
    border-radius:18px;
  }

  .restart-message p{
    font-size:14px;
    line-height:1.85;
  }
}


/* ===== Restart message emphasis ===== */
.restart-message{
  max-width: 1020px !important;
  margin: 34px auto 0 !important;
  padding: 28px 34px !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at top right, rgba(201,171,106,.16), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(255,248,244,.98) 100%) !important;
  border: 1px solid rgba(201,171,106,.24) !important;
  box-shadow: 0 18px 40px rgba(17,33,58,.08) !important;
}

.restart-message p{
  color: #10264e !important;
  font-size: 19px !important;
  line-height: 1.95 !important;
  font-weight: 800 !important;
  letter-spacing: .02em;
}

@media (max-width: 767px){
  .restart-message{
    margin-top: 24px !important;
    padding: 20px 16px !important;
    border-radius: 18px !important;
  }

  .restart-message p{
    font-size: 15px !important;
    line-height: 1.9 !important;
  }
}


/* ===== Voices photo layout ===== */
.voice-card{
  overflow:hidden;
  padding-top:0 !important;
}

.voices-photo{
  position:relative;
  margin:0 -24px 18px;
  height:188px;
  overflow:hidden;
  background:#eef2f6;
}

.voices-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.voice-card > h3,
.voice-card > .voice-body,
.voice-card > .voice-tags{
  padding-left:24px;
  padding-right:24px;
}

.voice-card > .voice-tags{
  padding-bottom:24px;
}

@media (max-width: 767px){
  .voices-photo{
    margin:0 -18px 16px;
    height:156px;
  }

  .voice-card > h3,
  .voice-card > .voice-body,
  .voice-card > .voice-tags{
    padding-left:18px;
    padding-right:18px;
  }

  .voice-card > .voice-tags{
    padding-bottom:20px;
  }
}






/* ===== Voices photo edge fix ===== */
.voices-photo{
  margin:0 -34px 18px !important;
  width:calc(100% + 68px) !important;
}

.voice-card > h3,
.voice-card > .voice-body,
.voice-card > .voice-tags{
  padding-left:34px;
  padding-right:34px;
}

@media (max-width: 991px){
  .voices-photo{
    margin:0 -24px 18px !important;
    width:calc(100% + 48px) !important;
  }

  .voice-card > h3,
  .voice-card > .voice-body,
  .voice-card > .voice-tags{
    padding-left:24px;
    padding-right:24px;
  }
}

@media (max-width: 767px){
  .voices-photo{
    margin:0 -18px 16px !important;
    width:calc(100% + 36px) !important;
  }

  .voice-card > h3,
  .voice-card > .voice-body,
  .voice-card > .voice-tags{
    padding-left:18px;
    padding-right:18px;
  }
}


/* ===== Comparison SP fit ===== */
@media (max-width: 767px){
  .comparison-table-wrap{
    overflow: visible !important;
  }

  .comparison-table{
    width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: 1.05fr .95fr .95fr .95fr !important;
  }

  .comparison-cell{
    padding: 12px 8px !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
    word-break: keep-all;
  }

  .comparison-cell--label{
    font-size: 11px !important;
    line-height: 1.4 !important;
  }

  .comparison-cell--company,
  .comparison-company,
  .comparison-main{
    font-size: 11px !important;
    line-height: 1.35 !important;
  }

  .comparison-badge{
    font-size: 10px !important;
    padding: 4px 8px !important;
  }

  .comparison-featured-mark{
    font-size: 14px !important;
    margin-bottom: 6px !important;
  }

  .comparison-arrow{
    display: none !important;
  }

  .comparison-note{
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}


/* ===== Comparison SP badge fix ===== */
@media (max-width: 767px){
  .comparison-badge{
    display: none !important;
  }
}




/* ===== Fixed CTA attention motion ===== */
.fixed-cta-btn{
  position: relative;
  overflow: hidden;
  will-change: transform, box-shadow, filter;
}

.fixed-cta-btn::after{
  content: "";
  position: absolute;
  top: 0;
  left: -44%;
  width: 28%;
  height: 100%;
  transform: skewX(-22deg);
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.20) 38%,
    rgba(255,255,255,.58) 50%,
    rgba(255,255,255,.20) 62%,
    rgba(255,255,255,0) 100%
  );
  opacity: 0;
  pointer-events: none;
}

.fixed-cta::before{
  content:"";
  position:absolute;
  inset:-10px -18px;
  border-radius:999px;
  background:radial-gradient(circle, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 68%);
  opacity:0;
  pointer-events:none;
}

.fixed-cta.is-visible::before{
  animation: fixedCtaAura 2.8s ease-in-out infinite;
}

.fixed-cta.is-visible .fixed-cta-btn{
  animation: fixedCtaBob 1.8s ease-in-out infinite;
}

.fixed-cta.is-visible .fixed-cta-btn::after{
  animation: fixedCtaShine 2.4s ease-in-out infinite;
}

.fixed-cta.is-visible .fixed-cta-btn--mail{
  animation-delay: .28s;
}

.fixed-cta.is-visible .fixed-cta-btn--mail::after{
  animation-delay: .18s;
}

.fixed-cta.is-visible .fixed-cta-btn--line{
  box-shadow: 0 18px 34px rgba(16, 38, 78, .22), 0 0 0 0 rgba(34,197,94,.0);
}

.fixed-cta.is-visible .fixed-cta-btn--mail{
  box-shadow: 0 18px 34px rgba(16, 38, 78, .22), 0 0 0 0 rgba(79,142,245,.0);
}

@keyframes fixedCtaBob{
  0%,100%{
    transform: translateY(0) scale(1);
    filter: brightness(1);
  }
  25%{
    transform: translateY(-4px) scale(1.015);
    filter: brightness(1.03);
  }
  50%{
    transform: translateY(0) scale(1);
    filter: brightness(1.01);
  }
  75%{
    transform: translateY(-7px) scale(1.028);
    filter: brightness(1.05);
  }
}

@keyframes fixedCtaShine{
  0%, 30%, 100%{
    opacity: 0;
    left: -44%;
  }
  35%{
    opacity: 1;
  }
  58%{
    opacity: 1;
    left: 122%;
  }
}

@keyframes fixedCtaAura{
  0%,100%{
    opacity: .16;
    transform: scale(1);
  }
  50%{
    opacity: .34;
    transform: scale(1.05);
  }
}

@media (prefers-reduced-motion: reduce){
  .fixed-cta.is-visible::before,
  .fixed-cta.is-visible .fixed-cta-btn,
  .fixed-cta.is-visible .fixed-cta-btn::after{
    animation: none !important;
  }
}


/* ===== Sakura tone fix ===== */
:root{
  --gold:#c8a97a;
  --gold-strong:#b89361;
}

/* overall section air */
.section-light{
  background-color:#fffafa;
}

.section-dark,
.comparison-section{
  background:
    linear-gradient(180deg, #fff8f8 0%, #fff4f5 100%) !important;
}

/* key sections with soft sakura air */
.support-section,
.restart-section,
.faq-section,
.contact-form-section,
.office-section{
  background:
    radial-gradient(circle at top right, rgba(226, 160, 176, .10), transparent 34%),
    linear-gradient(180deg, #fffafa 0%, #fff4f6 100%) !important;
}

.bank-network-section{
  background:
    radial-gradient(circle at top left, rgba(226, 160, 176, .08), transparent 30%),
    linear-gradient(180deg, #fffbfd 0%, #fff7f9 100%) !important;
}

.flow-section{
  background:
    linear-gradient(180deg, #fff9fa 0%, #fff4f6 100%) !important;
}

/* cards become slightly softer and brighter */
.concern-card,
.support-card,
.voice-card,
.restart-card,
.location-card,
.faq-item,
.case-sim-card{
  background:linear-gradient(180deg, rgba(255,255,255,.985) 0%, rgba(255,248,249,.985) 100%) !important;
  border-color:rgba(188, 151, 114, .18) !important;
  box-shadow:0 14px 34px rgba(46, 34, 46, .05) !important;
}

/* subtle pink air in note/message surfaces */
.restart-message,
.comparison-note,
.office-points,
.location-address,
.location-access{
  background:
    linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,246,248,.96) 100%) !important;
}

/* headings keep navy but lighten body/support colors */
.section-intro,
.comparison-intro,
.bank-network-intro,
.faq-intro,
.voice-body,
.restart-card p,
.restart-intro,
.office-copy .section-intro,
.office-location-head p,
.flow-step p,
.flow-step-sub{
  color:#6d6f86 !important;
}

/* gold accents softened to champagne */
.eyebrow,
.location-label,
.location-block-label,
.bank-card-type,
.restart-card-index,
.comparison-badge{
  color:#b9925c !important;
}

.comparison-badge,
.restart-card-index,
.header-tollfree-label{
  border-color:rgba(185,146,92,.24) !important;
}

.voice-tags span,
.location-address,
.location-access,
.faq-item summary{
  border-color:rgba(185,146,92,.18) !important;
}

/* pink-tinted subtle chips and tags */
.voice-tags span,
.bank-card,
.flow-step-badge,
.hero-benefit-check{
  background-color:rgba(255, 244, 247, .96);
}

/* keep main headings and important buttons calm */
h1,h2,h3,
.restart-message p,
.flow-step h3,
.location-card-body h3{
  color:#18304f;
}


/* ===== Contact form implementation ===== */
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}

.form-status-message{
  display:none;
  margin:0 0 24px;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid rgba(194,80,80,.18);
  background:rgba(255,245,245,.92);
  color:#8d3a3a;
  font-size:14px;
  line-height:1.7;
}

.form-status-message.is-error{
  display:block;
}

/* ===== Patch: hero emphasis contrast + lead wrapping ===== */
.hero-lead-emphasis{
  background:linear-gradient(180deg, rgba(22, 48, 92, .80) 0%, rgba(18, 40, 77, .88) 100%) !important;
  border-color:rgba(242, 211, 139, .72) !important;
  box-shadow:0 12px 28px rgba(6, 16, 34, .24) !important;
}
.hero-lead-support .lead-line{
  white-space:normal;
}
.hero-lead-support .hero-lead-emphasis{
  white-space:nowrap;
}
@media (max-width: 767px){
  .hero-lead-support .hero-lead-emphasis{
    white-space:normal;
  }
}

/* ===== Patch: support note caption split ===== */
.support-note-caption{
  margin:10px auto 0;
  text-align:center;
  color:#647391;
  font-size:13px;
  font-weight:500;
  line-height:1.8;
}
@media (max-width: 767px){
  .support-note-caption{
    font-size:12px;
    line-height:1.7;
  }
}

/* ===== Patch: unique support card icons ===== */
/* 02: zero down / house + yen coin */
.support-icon--zerodown::before{
  left:4px; top:18px; width:18px; height:14px;
  border:3px solid #263b69; border-top:none;
  background:#fff;
}
.support-icon--zerodown::after{
  left:7px; top:9px; width:12px; height:12px;
  border-left:3px solid #263b69;
  border-top:3px solid #263b69;
  transform:rotate(45deg);
}
.support-icon--zerodown{
  background:
    radial-gradient(circle, transparent 8px, #263b69 8px, #263b69 11px, transparent 12px) 29px 18px / 22px 22px no-repeat,
    linear-gradient(#263b69,#263b69) 33px 19px / 7px 3px no-repeat,
    linear-gradient(#263b69,#263b69) 33px 24px / 7px 3px no-repeat,
    linear-gradient(#263b69,#263b69) 35px 16px / 3px 14px no-repeat;
}

/* 03: status anxiety / person + bar chart */
.support-icon--status::before{
  left:4px; top:9px; width:14px; height:14px;
  border:3px solid #263b69; border-radius:999px;
  background:#fff;
}
.support-icon--status::after{
  left:2px; top:25px; width:18px; height:12px;
  border:3px solid #263b69; border-top-left-radius:10px; border-top-right-radius:10px; border-bottom:none;
}
.support-icon--status{
  background:
    linear-gradient(#263b69,#263b69) 27px 28px / 3px 10px no-repeat,
    linear-gradient(#263b69,#263b69) 33px 23px / 3px 15px no-repeat,
    linear-gradient(#263b69,#263b69) 39px 17px / 3px 21px no-repeat,
    linear-gradient(#263b69,#263b69) 24px 38px / 20px 3px no-repeat;
}

/* 04: one-stop flow / dots and arrow */
.support-icon--flow::before{
  left:6px; top:20px; width:26px; height:3px;
  background:#263b69;
  box-shadow:0 10px 0 #263b69;
}
.support-icon--flow::after{
  left:28px; top:14px; width:12px; height:12px;
  border-top:3px solid #263b69;
  border-right:3px solid #263b69;
  transform:rotate(45deg);
}
.support-icon--flow{
  background:
    radial-gradient(circle, #263b69 0 4px, transparent 4.5px) 2px 15px / 10px 10px no-repeat,
    radial-gradient(circle, #263b69 0 4px, transparent 4.5px) 2px 25px / 10px 10px no-repeat,
    radial-gradient(circle, #263b69 0 4px, transparent 4.5px) 18px 15px / 10px 10px no-repeat,
    radial-gradient(circle, #263b69 0 4px, transparent 4.5px) 18px 25px / 10px 10px no-repeat;
}

/* 05: property search / home + magnifier */
.support-icon--property-search::before{
  left:8px; top:16px; width:18px; height:14px;
  border:3px solid #263b69; border-top:none;
  background:#fff;
}
.support-icon--property-search::after{
  left:11px; top:8px; width:12px; height:12px;
  border-left:3px solid #263b69;
  border-top:3px solid #263b69;
  transform:rotate(45deg);
}
.support-icon--property-search{
  background:
    radial-gradient(circle, transparent 7px, #263b69 7px, #263b69 10px, transparent 10.5px) 24px 18px / 20px 20px no-repeat,
    linear-gradient(#263b69,#263b69) 36px 31px / 3px 10px no-repeat,
    linear-gradient(45deg, #263b69,#263b69) 32px 28px / 3px 12px no-repeat;
}

/* 06: finance network / bank + linked nodes */
.support-icon--network::before{
  left:4px; top:16px; width:18px; height:14px;
  border-left:3px solid #263b69;
  border-right:3px solid #263b69;
  border-bottom:3px solid #263b69;
  background:
    linear-gradient(#263b69,#263b69) 4px 0 / 3px 14px no-repeat,
    linear-gradient(#263b69,#263b69) 11px 0 / 3px 14px no-repeat,
    #fff;
}
.support-icon--network::after{
  left:5px; top:9px; width:16px; height:8px;
  border-top:3px solid #263b69;
  border-left:3px solid transparent;
  border-right:3px solid transparent;
  transform:skewX(-25deg);
}
.support-icon--network{
  background:
    radial-gradient(circle, #263b69 0 3px, transparent 3.5px) 29px 10px / 8px 8px no-repeat,
    radial-gradient(circle, #263b69 0 3px, transparent 3.5px) 37px 21px / 8px 8px no-repeat,
    radial-gradient(circle, #263b69 0 3px, transparent 3.5px) 29px 32px / 8px 8px no-repeat,
    linear-gradient(#263b69,#263b69) 24px 16px / 10px 2px no-repeat,
    linear-gradient(#263b69,#263b69) 31px 20px / 8px 2px no-repeat,
    linear-gradient(#263b69,#263b69) 27px 27px / 10px 2px no-repeat,
    linear-gradient(#263b69,#263b69) 4px 33px / 20px 3px no-repeat;
}


/* ===== Patch: case simulation mobile split + colored key cells ===== */
.case-sim-cell--debt-total{
  background:linear-gradient(180deg, rgba(224, 240, 255, .92) 0%, rgba(213, 233, 252, .92) 100%) !important;
  border:1px solid rgba(102, 157, 220, .20);
}
.case-sim-cell--monthly{
  background:linear-gradient(180deg, rgba(255, 231, 238, .92) 0%, rgba(255, 221, 231, .92) 100%) !important;
  border:1px solid rgba(224, 122, 151, .20);
}
.case-sim-cell--rent{
  background:linear-gradient(180deg, rgba(231, 247, 231, .94) 0%, rgba(219, 241, 220, .94) 100%) !important;
  border:1px solid rgba(111, 174, 115, .20);
}
.case-sim-total{
  min-height:54px;
  background:linear-gradient(180deg, #66789c 0%, #455a84 100%) !important;
  box-shadow:0 10px 20px rgba(45, 65, 105, .20);
  letter-spacing:.01em;
}
.case-sim-highlight{
  min-height:56px;
  background:linear-gradient(180deg, #ffb45f 0%, #ff862b 100%) !important;
  box-shadow:0 12px 24px rgba(255, 138, 43, .26);
  letter-spacing:.01em;
}
@media (max-width: 767px){
  .case-sim-panels{
    grid-template-columns:minmax(0, 1fr) 24px minmax(0, 1fr) !important;
    gap:5px !important;
    align-items:stretch;
  }
  .case-sim-arrow{
    width:24px !important;
    height:24px !important;
    margin:auto 0 !important;
    transform:none !important;
    font-size:17px !important;
  }
  .case-sim-panel{
    min-width:0;
    min-height:100% !important;
    padding:11px 7px 10px !important;
    border-radius:15px !important;
  }
  .case-sim-panel h4{
    font-size:13px !important;
    margin-bottom:8px !important;
  }
  .case-sim-panel ul{
    gap:6px !important;
  }
  .case-sim-panel li{
    min-height:34px !important;
    padding:5px 7px !important;
    font-size:11px !important;
    line-height:1.28 !important;
    white-space:normal !important;
    border-radius:10px !important;
  }
  .case-sim-total,
  .case-sim-highlight{
    min-height:40px !important;
    padding:5px 6px !important;
    font-size:11px !important;
    line-height:1.25 !important;
    white-space:normal !important;
    border-radius:12px !important;
  }
}
@media (max-width: 380px){
  #cases .container{
    width:min(100%, calc(100% - 16px));
  }
  .case-sim-card{
    padding-left:10px;
    padding-right:10px;
  }
  .case-sim-panels{
    grid-template-columns:minmax(0, 1fr) 20px minmax(0, 1fr) !important;
    gap:4px !important;
  }
  .case-sim-arrow{
    width:20px !important;
    height:20px !important;
    font-size:15px !important;
  }
  .case-sim-panel{
    padding-left:6px !important;
    padding-right:6px !important;
  }
  .case-sim-panel li,
  .case-sim-total,
  .case-sim-highlight{
    font-size:10.5px !important;
  }
}


/* ===== Patch: customer voices PC 3 columns ===== */
@media (min-width: 992px){
  .voices-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:24px !important;
  }

  .voice-card{
    padding-bottom:28px !important;
  }

  .voice-card > h3{
    font-size:18px !important;
    line-height:1.55 !important;
  }

  .voice-card > .voice-body{
    font-size:14px !important;
    line-height:1.85 !important;
  }
}


/* ===== Patch: customer voices PC width matches case cards ===== */
@media (min-width: 992px){
  #voices .voices-wrap{
    width:min(1720px, calc(100% - 56px)) !important;
    max-width:none !important;
  }

  #voices .voices-grid{
    gap:28px !important;
  }
}

@media (min-width: 992px) and (max-width: 1400px){
  #voices .voices-wrap{
    width:min(100%, calc(100% - 36px)) !important;
  }
}

/* ===== Patch: restore customer voices to 4 cards ===== */
@media (min-width: 1024px){
  .voices-grid{
    grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  }
}


/* ===== Patch: customer voices PC 2 columns x 2 rows ===== */
@media (min-width: 992px){
  #voices .voices-wrap{
    max-width:1180px !important;
    width:min(1180px, calc(100% - 48px)) !important;
  }
  #voices .voices-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:28px !important;
  }
  #voices .voice-card > h3{
    font-size:20px !important;
    line-height:1.65 !important;
  }
  #voices .voice-card > .voice-body{
    font-size:15px !important;
    line-height:1.9 !important;
  }
}


/* ===== Patch: bank network logo grid ===== */
.bank-network-section{
  background:linear-gradient(180deg, #fff7fa 0%, #f8fbff 100%) !important;
  overflow:visible !important;
}
.bank-network-wrap{
  width:min(1180px, calc(100% - 48px)) !important;
  max-width:1180px !important;
}
.bank-logo-grid{
  list-style:none;
  margin:36px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
}
.bank-logo-card{
  min-height:116px;
  padding:20px 22px;
  border-radius:18px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(190, 208, 234, .78);
  box-shadow:0 14px 34px rgba(31,49,88,.06);
  display:flex;
  align-items:center;
  justify-content:center;
}
.bank-logo-card img{
  display:block;
  width:100%;
  height:72px;
  object-fit:contain;
}
.bank-logo-card--11 img{
  height:78px;
}
.bank-logo-card--12 img{
  height:76px;
}
@media (max-width: 980px){
  .bank-logo-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:14px;
  }
  .bank-logo-card{
    min-height:104px;
    padding:18px;
  }
  .bank-logo-card img{
    height:64px;
  }
}
@media (max-width: 767px){
  .bank-network-wrap{
    width:min(100% - 32px, 560px) !important;
  }
  .bank-logo-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
    margin-top:26px;
  }
  .bank-logo-card{
    min-height:88px;
    padding:14px 12px;
    border-radius:14px;
  }
  .bank-logo-card img{
    height:52px;
  }
  .bank-logo-card--11 img,
  .bank-logo-card--12 img{
    height:54px;
  }
}


/* ===== Patch: keep bank logo slide processing ===== */
.bank-network-section{
  overflow:hidden !important;
}
.bank-network-wrap{
  width:100% !important;
  max-width:none !important;
}
.bank-logo-slider{
  width:100%;
  margin:38px 0 0;
  display:grid;
  gap:18px;
  overflow:hidden;
}
.bank-logo-track{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  gap:18px;
  width:max-content;
  will-change:transform;
  animation-duration:42s;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
}
.bank-logo-track--top{
  animation-name:bankLogoScrollLeft;
}
.bank-logo-track--bottom{
  animation-name:bankLogoScrollRight;
}
.bank-logo-track .bank-logo-card{
  flex:0 0 300px;
  width:300px;
  min-height:112px;
}
@keyframes bankLogoScrollLeft{
  from{ transform:translateX(0); }
  to{ transform:translateX(calc(-50% - 9px)); }
}
@keyframes bankLogoScrollRight{
  from{ transform:translateX(calc(-50% - 9px)); }
  to{ transform:translateX(0); }
}
@media (prefers-reduced-motion: reduce){
  .bank-logo-track{
    animation:none;
  }
}
@media (max-width: 767px){
  .bank-logo-slider{
    gap:14px;
    margin-top:28px;
  }
  .bank-logo-track{
    gap:14px;
    animation-duration:30s;
  }
  .bank-logo-track .bank-logo-card{
    flex-basis:220px;
    width:220px;
    min-height:84px;
    padding:14px 16px;
  }
  .bank-logo-track .bank-logo-card img{
    height:50px;
  }
  .bank-logo-track .bank-logo-card--11 img,
  .bank-logo-track .bank-logo-card--12 img{
    height:52px;
  }
}


/* ===== Patch: pause bank logo slide on card hover ===== */
.bank-logo-track:hover,
.bank-logo-track:has(.bank-logo-card:hover){
  animation-play-state:paused;
}

/* ===== Patch: flow CTA note ===== */
.flow-cta-note{
  margin:28px auto 0;
  color:#6d7890;
  font-size:14px;
  line-height:1.75;
  font-weight:700;
  text-align:center;
}
.flow-cta-note + .flow-cta{
  margin-top:14px;
}
@media (max-width: 767px){
  .flow-cta-note{
    margin-top:24px;
    font-size:13px;
    line-height:1.7;
  }
}


/* ===== Patch: flow CTA note typography match support caption ===== */
.flow-cta-note{
  color:#647391 !important;
  font-size:13px !important;
  font-weight:500 !important;
  line-height:1.8 !important;
  letter-spacing:normal !important;
}
@media (max-width: 767px){
  .flow-cta-note{
    font-size:12px !important;
    line-height:1.7 !important;
  }
}


/* ===== Patch: contact form required / optional badges ===== */
.consult-label{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
}
.form-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  min-height:22px;
  padding:2px 8px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  font-weight:700;
  letter-spacing:.04em;
  vertical-align:middle;
}
.form-badge--required{
  color:#fff;
  background:#ff6f7a;
}
.form-badge--optional{
  color:#6f7890;
  background:#edf2f8;
  border:1px solid #d7e0ec;
}
/* ===== Patch: concern card 02 title line break fix ===== */
.concern-card--02 .concern-card-body h3{
  max-width:none;
}


/* ===== Patch: concern 01 image hover zoom restore ===== */
#concerns .concern-card--01 .concern-card-image img{
  transition:transform .5s ease !important;
}
#concerns .concern-card--01:hover .concern-card-image img{
  transform:scale(1.05) !important;
}


/* ===== Client patch: SP concern05 wrapping + flow arrow 02-03 ===== */
.concern05-sp-break{
  display:none;
}

@media (max-width: 767px){
  #concerns .concern-card--05 .concern-card-body h3{
    max-width:none;
    overflow:visible;
    word-break:normal;
    overflow-wrap:anywhere;
  }
  #concerns .concern-card--05 .concern-card-body h3 .concern05-sp-break{
    display:inline;
  }

  .flow-step:nth-child(2)::after{
    display:grid;
  }
}


/* ===== Client SP patch: hero title, concerns overflow, menu CTA hide ===== */
.hero-title-sp-break{
  display:none;
}

@media (max-width: 767px){
  .hero-title-sp-break{
    display:block;
  }

  .hero h1{
    font-size:clamp(27px, 7.2vw, 31px) !important;
    line-height:1.34 !important;
    letter-spacing:.015em !important;
  }

  .hero-copy-panel--support .hero-title-line{
    white-space:normal !important;
    overflow-wrap:normal;
    word-break:keep-all;
  }

  .hero-copy-panel--support{
    padding-left:18px !important;
    padding-right:18px !important;
  }

  #concerns .concern-card{
    overflow:hidden;
  }

  #concerns .concern-card-body{
    min-width:0;
    overflow:hidden;
  }

  #concerns .concern-card-body h3{
    max-width:100% !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    line-break:strict;
    font-size:17px;
    line-height:1.55;
  }

  #concerns .concern-card-body h3 br,
  #concerns .concern-card--05 .concern-card-body h3 .concern05-sp-break{
    display:block !important;
  }

  body.menu-open .fixed-cta,
  .site-header.is-open ~ main ~ .fixed-cta{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    display:none !important;
  }
}


/* ===== Final SP validation patch: hero title + concern05 line breaks ===== */
@media (max-width: 767px){
  .hero h1{
    font-size:clamp(26px, 6.9vw, 29px) !important;
    line-height:1.36 !important;
    letter-spacing:.01em !important;
  }

  .hero-copy-panel--support .hero-title-line{
    display:block !important;
    max-width:100% !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:keep-all !important;
    line-break:strict;
  }

  #concerns .concern-card-body h3{
    max-width:100% !important;
    white-space:normal !important;
    overflow:visible !important;
    overflow-wrap:break-word !important;
    word-break:normal !important;
    line-break:strict;
  }

  #concerns .concern-card--05 .concern-card-body h3{
    font-size:clamp(20px, 5.3vw, 22px) !important;
    line-height:1.58 !important;
  }

  #concerns .concern-card--05 .concern-card-body h3 br{
    display:block !important;
  }
}

/* ===== Final fix: concern 01 hover keeps crop and zooms outward ===== */
#concerns .concern-card--01 .concern-card-image img{
  transform:scale(2.25) !important;
  transition:transform .5s ease !important;
}
#concerns .concern-card--01:hover .concern-card-image img{
  transform:scale(2.35) !important;
}


/* ===== Final correction: SP concern 05 typography matches other cards ===== */
@media (max-width: 767px){
  #concerns .concern-card--05 .concern-card-body h3{
    font-size:17px !important;
    line-height:1.55 !important;
    letter-spacing:.01em !important;
  }
  #concerns .concern-card--05 .concern-card-body h3 br{
    display:block !important;
  }
}


/* ===== Final PC correction: hero main copy two-line layout ===== */
@media (min-width: 768px){
  .hero-title-sp-break{
    display:none !important;
  }

  .hero-stack--support{
    width:min(100%, 1040px) !important;
  }

  .hero-copy-panel--support{
    padding-left:52px !important;
    padding-right:52px !important;
  }

  .hero-copy-panel--support h1{
    font-size:clamp(40px, 3.2vw, 46px) !important;
    line-height:1.38 !important;
    letter-spacing:.035em !important;
    text-wrap:normal !important;
  }

  .hero-copy-panel--support .hero-title-line{
    display:block !important;
    max-width:none !important;
    white-space:nowrap !important;
    overflow-wrap:normal !important;
    word-break:keep-all !important;
    line-break:strict;
  }
}


/* ===== Patch: SP open menu scroll area ===== */
@media (max-width: 767px){
  body.menu-open{
    overflow:hidden;
  }

  .site-header.is-open{
    height:100dvh;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }

  .site-header.is-open .header-inner{
    position:relative;
    min-height:860px;
  }

  .site-header.is-open .global-nav,
  .site-header.is-open .header-tollfree,
  .site-header.is-open .header-actions{
    position:absolute !important;
    left:20px;
    right:20px;
  }

  .site-header.is-open .global-nav{
    top:88px;
    max-height:none;
    overflow:visible;
  }

  .site-header.is-open .header-tollfree{
    top:650px;
  }

  .site-header.is-open .header-actions{
    top:704px;
    padding-bottom:28px;
  }
}


/* ===== Robust fix: SP open menu uses natural scrollable layout ===== */
@media (max-width: 767px){
  .site-header.is-open{
    position:fixed !important;
    inset:0 !important;
    height:100vh !important;
    height:100dvh !important;
    overflow-y:scroll !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain;
    background:#5a9ae0 !important;
    z-index:1000 !important;
  }

  .site-header.is-open .header-inner{
    width:min(100% - 48px, 1120px) !important;
    min-height:auto !important;
    height:auto !important;
    margin:0 auto !important;
    padding:26px 0 44px !important;
    display:grid !important;
    grid-template-columns:1fr auto !important;
    align-items:center !important;
    gap:0 !important;
    overflow:visible !important;
  }

  .site-header.is-open .logo{
    grid-column:1 / 2;
    grid-row:1;
    position:relative !important;
    z-index:2;
  }

  .site-header.is-open .menu-toggle{
    grid-column:2 / 3;
    grid-row:1;
    position:relative !important;
    z-index:2;
  }

  .site-header.is-open .global-nav{
    grid-column:1 / -1;
    grid-row:2;
    position:static !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100% !important;
    max-height:none !important;
    margin:28px 0 26px !important;
    overflow:visible !important;
    display:flex !important;
    flex-direction:column !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
  }

  .site-header.is-open .header-tollfree{
    grid-column:1 / -1;
    grid-row:3;
    position:static !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100% !important;
    margin:0 0 14px !important;
    display:flex !important;
    justify-content:center !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
  }

  .site-header.is-open .header-actions{
    grid-column:1 / -1;
    grid-row:4;
    position:static !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100% !important;
    margin:0 !important;
    padding:0 0 max(28px, env(safe-area-inset-bottom)) !important;
    display:grid !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
  }

  .site-header.is-open .header-actions .btn{
    width:100% !important;
  }

  body.menu-open{
    overflow:hidden !important;
  }
}


/* ===== FINAL: SP menu shows lower contact actions without relying on scroll ===== */
@media (max-width: 767px){
  body.menu-open{
    overflow:hidden !important;
  }

  body.menu-open::before{
    content:"" !important;
    position:fixed !important;
    inset:0 !important;
    background:#5a9ae0 !important;
    z-index:999 !important;
  }

  .site-header.is-open{
    position:fixed !important;
    inset:0 !important;
    height:100dvh !important;
    min-height:100dvh !important;
    overflow:hidden !important;
    background:#5a9ae0 !important;
    z-index:1000 !important;
    border-bottom:0 !important;
  }

  .site-header.is-open .header-inner{
    width:calc(100% - 32px) !important;
    min-height:58px !important;
    height:auto !important;
    margin:0 auto !important;
    padding:12px 0 0 !important;
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    overflow:visible !important;
  }

  .site-header.is-open .logo{
    position:relative !important;
    z-index:1002 !important;
    flex:0 0 auto !important;
  }

  .site-header.is-open .menu-toggle{
    position:relative !important;
    z-index:1002 !important;
    margin-left:auto !important;
    flex:0 0 40px !important;
  }

  .site-header.is-open .global-nav{
    position:fixed !important;
    top:72px !important;
    left:16px !important;
    right:16px !important;
    bottom:154px !important;
    width:auto !important;
    max-height:none !important;
    margin:0 !important;
    padding:8px 0 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    gap:0 !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    background:#5a9ae0 !important;
    border:1px solid rgba(255,255,255,.18) !important;
    border-radius:18px !important;
    box-shadow:none !important;
    z-index:1001 !important;
  }

  .site-header.is-open .global-nav a{
    display:block !important;
    padding:10px 16px !important;
    font-size:15px !important;
    line-height:1.35 !important;
    color:#fff !important;
    border-top:1px solid rgba(255,255,255,.16) !important;
  }

  .site-header.is-open .global-nav a:first-child{
    border-top:0 !important;
  }

  .site-header.is-open .header-tollfree{
    position:fixed !important;
    left:16px !important;
    right:16px !important;
    top:auto !important;
    bottom:86px !important;
    width:auto !important;
    min-height:44px !important;
    margin:0 !important;
    padding:8px 14px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:10px !important;
    white-space:nowrap !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    background:rgba(255,255,255,.14) !important;
    border:1px solid rgba(255,255,255,.20) !important;
    border-radius:16px !important;
    z-index:1002 !important;
  }

  .site-header.is-open .header-tollfree-label{
    background:rgba(255,255,255,.24) !important;
    color:#fff !important;
  }

  .site-header.is-open .header-tollfree-number{
    color:#fff !important;
    font-size:20px !important;
    line-height:1 !important;
    font-weight:900 !important;
    text-decoration:none !important;
  }

  .site-header.is-open .header-actions{
    position:fixed !important;
    left:16px !important;
    right:16px !important;
    top:auto !important;
    bottom:max(18px, env(safe-area-inset-bottom)) !important;
    width:auto !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    z-index:1002 !important;
  }

  .site-header.is-open .header-actions .btn{
    width:100% !important;
    min-height:54px !important;
    border-radius:16px !important;
    font-size:15px !important;
  }

  body.menu-open .fixed-cta{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}

@media (max-width: 374px){
  .site-header.is-open .global-nav{
    top:66px !important;
    bottom:142px !important;
  }

  .site-header.is-open .global-nav a{
    padding:8px 14px !important;
    font-size:14px !important;
    line-height:1.3 !important;
  }

  .site-header.is-open .header-tollfree{
    bottom:78px !important;
    min-height:40px !important;
    padding:7px 12px !important;
  }

  .site-header.is-open .header-tollfree-number{
    font-size:18px !important;
  }

  .site-header.is-open .header-actions .btn{
    min-height:50px !important;
    font-size:14px !important;
  }
}


/* ===== FINAL OVERRIDE: SP menu stable layout (scrollable, no empty fixed panel) ===== */
@media (max-width: 767px){
  body.menu-open{
    overflow:hidden !important;
  }

  body.menu-open::before{
    content:none !important;
  }

  .site-header.is-open{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
    height:100vh !important;
    height:100dvh !important;
    min-height:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain !important;
    background:#5a9ae0 !important;
    border-bottom:0 !important;
    z-index:1000 !important;
  }

  .site-header.is-open .header-inner{
    width:calc(100% - 52px) !important;
    min-height:0 !important;
    height:auto !important;
    margin:0 auto !important;
    padding:26px 0 max(28px, env(safe-area-inset-bottom)) !important;
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) 48px !important;
    grid-auto-rows:auto !important;
    align-items:center !important;
    gap:0 !important;
    overflow:visible !important;
  }

  .site-header.is-open .logo{
    grid-column:1 / 2 !important;
    grid-row:1 !important;
    position:relative !important;
    z-index:2 !important;
    display:flex !important;
  }

  .site-header.is-open .logo-image{
    height:24px !important;
    width:auto !important;
  }

  .site-header.is-open .menu-toggle{
    grid-column:2 / 3 !important;
    grid-row:1 !important;
    position:relative !important;
    z-index:2 !important;
    width:44px !important;
    height:44px !important;
    margin-left:auto !important;
    display:block !important;
    border:0 !important;
    outline:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  .site-header.is-open .global-nav{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    position:static !important;
    inset:auto !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:32px 0 22px !important;
    padding:0 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    gap:0 !important;
    overflow:visible !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    background:transparent !important;
    border:1px solid rgba(255,255,255,.20) !important;
    border-radius:20px !important;
    box-shadow:none !important;
    z-index:1 !important;
  }

  .site-header.is-open .global-nav a{
    display:flex !important;
    align-items:center !important;
    min-height:58px !important;
    padding:0 28px !important;
    color:#fff !important;
    font-size:22px !important;
    line-height:1.35 !important;
    font-weight:700 !important;
    letter-spacing:.01em !important;
    border-top:1px solid rgba(255,255,255,.16) !important;
  }

  .site-header.is-open .global-nav a:first-child{
    border-top:0 !important;
  }

  .site-header.is-open .header-tollfree{
    grid-column:1 / -1 !important;
    grid-row:3 !important;
    position:static !important;
    inset:auto !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100% !important;
    min-height:46px !important;
    margin:0 0 14px !important;
    padding:8px 14px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:10px !important;
    white-space:nowrap !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    background:rgba(255,255,255,.14) !important;
    border:1px solid rgba(255,255,255,.20) !important;
    border-radius:16px !important;
    z-index:1 !important;
  }

  .site-header.is-open .header-tollfree-label{
    background:rgba(255,255,255,.24) !important;
    color:#fff !important;
  }

  .site-header.is-open .header-tollfree-number{
    color:#fff !important;
    font-size:22px !important;
    line-height:1 !important;
    font-weight:900 !important;
    letter-spacing:.02em !important;
    text-decoration:none !important;
  }

  .site-header.is-open .header-actions{
    grid-column:1 / -1 !important;
    grid-row:4 !important;
    position:static !important;
    inset:auto !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    z-index:1 !important;
  }

  .site-header.is-open .header-actions .btn{
    width:100% !important;
    min-height:54px !important;
    border-radius:16px !important;
    font-size:15px !important;
  }

  body.menu-open .fixed-cta{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}

@media (max-width: 374px){
  .site-header.is-open .header-inner{
    width:calc(100% - 36px) !important;
    padding-top:18px !important;
  }

  .site-header.is-open .global-nav{
    margin-top:22px !important;
    margin-bottom:16px !important;
  }

  .site-header.is-open .global-nav a{
    min-height:48px !important;
    padding:0 18px !important;
    font-size:18px !important;
  }

  .site-header.is-open .header-tollfree{
    min-height:42px !important;
    margin-bottom:10px !important;
  }

  .site-header.is-open .header-tollfree-number{
    font-size:18px !important;
  }

  .site-header.is-open .header-actions .btn{
    min-height:50px !important;
    font-size:14px !important;
  }
}

/* ===== Final patch: SP menu item typography ===== */
@media (max-width: 767px){
  .site-header.is-open .global-nav a{
    font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif !important;
    font-size:20px !important;
    font-weight:700 !important;
    letter-spacing:.02em !important;
  }
}
@media (max-width: 374px){
  .site-header.is-open .global-nav a{
    font-size:17px !important;
  }
}


/* ===== Patch: SP menu item thinner Mincho ===== */
@media (max-width: 767px){
  .site-header.is-open .global-nav a{
    font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif !important;
    font-weight:400 !important;
    -webkit-font-smoothing:antialiased;
    text-shadow:none !important;
  }
}


/* ===== Patch: SP hero emphasis line break ===== */
.hero-lead-emphasis-sp-break{
  display:none;
}
@media (max-width: 767px){
  .hero-lead-support .hero-lead-emphasis{
    text-align:center !important;
  }
  .hero-lead-emphasis-sp-break{
    display:block;
  }
}


/* ===== Correction: separate PC/SP hero copy safely ===== */
.hero-title--sp{
  display:none;
}
.hero-lead-emphasis-sp{
  display:none;
}
.hero-lead-emphasis-pc{
  display:inline;
}

@media (min-width: 768px){
  .hero-title--pc{
    display:block !important;
  }
  .hero-title--sp{
    display:none !important;
  }
  .hero-title--pc .hero-title-line{
    display:block !important;
    white-space:nowrap !important;
    overflow-wrap:normal !important;
    word-break:keep-all !important;
  }
  .hero-lead-emphasis-pc{
    display:inline !important;
  }
  .hero-lead-emphasis-sp{
    display:none !important;
  }
}

@media (max-width: 767px){
  .hero-title--pc{
    display:none !important;
  }
  .hero-title--sp{
    display:block !important;
  }
  .hero-title--sp .hero-title-line{
    display:block !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:keep-all !important;
  }
  .hero-lead-emphasis-pc{
    display:none !important;
  }
  .hero-lead-emphasis-sp{
    display:block !important;
    text-align:center !important;
  }
}


/* ===== Patch: SP final CTA anonymous note one-line ===== */
@media (max-width: 767px){
  .cta-note{
    padding-left:10px !important;
    padding-right:10px !important;
  }
  .cta-note span{
    white-space:nowrap !important;
    font-size:clamp(13px, 3.35vw, 14px) !important;
    line-height:1.55 !important;
    letter-spacing:.01em !important;
  }
}


/* ===== Patch: SP contact intro readability ===== */
@media (max-width: 767px){
  .contact-form-section .contact-form-intro{
    max-width:100%;
    margin-bottom:30px !important;
    padding:0 2px;
    font-size:13px !important;
    line-height:1.72 !important;
    letter-spacing:.01em;
    font-weight:400 !important;
    text-align:center;
  }
  .contact-form-section .contact-form-intro .contact-form-line{
    display:block !important;
    white-space:normal !important;
  }
  .contact-form-section .contact-form-intro .contact-form-line + .contact-form-line{
    margin-top:4px !important;
  }
}


/* ===== Patch: SP contact intro smaller final ===== */
@media (max-width: 767px){
  .contact-form-section .contact-form-intro{
    font-size:11.5px !important;
    line-height:1.62 !important;
    letter-spacing:.005em !important;
  }
  .contact-form-section .contact-form-intro .contact-form-line{
    font-size:inherit !important;
    line-height:inherit !important;
  }
}


/* ===== Patch: header hamburger breakpoint to 1100px ===== */
@media (max-width: 1100px){
  .site-header .global-nav,
  .site-header .header-tollfree,
  .site-header .header-actions{
    display:none !important;
  }

  .site-header .menu-toggle{
    display:block !important;
  }

  .site-header .header-inner{
    min-height:64px;
  }

  body.menu-open{
    overflow:hidden !important;
  }

  .site-header.is-open{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
    height:100vh !important;
    height:100dvh !important;
    min-height:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain !important;
    background:#5a9ae0 !important;
    border-bottom:0 !important;
    z-index:1000 !important;
  }

  .site-header.is-open .header-inner{
    width:calc(100% - 52px) !important;
    min-height:0 !important;
    height:auto !important;
    margin:0 auto !important;
    padding:26px 0 max(28px, env(safe-area-inset-bottom)) !important;
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) 48px !important;
    grid-auto-rows:auto !important;
    align-items:center !important;
    gap:0 !important;
    overflow:visible !important;
  }

  .site-header.is-open .logo{
    grid-column:1 / 2 !important;
    grid-row:1 !important;
    position:relative !important;
    z-index:2 !important;
    display:flex !important;
  }

  .site-header.is-open .logo-image{
    height:24px !important;
    width:auto !important;
  }

  .site-header.is-open .menu-toggle{
    grid-column:2 / 3 !important;
    grid-row:1 !important;
    position:relative !important;
    z-index:2 !important;
    width:44px !important;
    height:44px !important;
    margin-left:auto !important;
    display:block !important;
    border:0 !important;
    outline:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  .site-header.is-open .global-nav{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    position:static !important;
    inset:auto !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:32px 0 22px !important;
    padding:0 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    gap:0 !important;
    overflow:visible !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    background:transparent !important;
    border:1px solid rgba(255,255,255,.20) !important;
    border-radius:20px !important;
    box-shadow:none !important;
    z-index:1 !important;
  }

  .site-header.is-open .global-nav a{
    display:flex !important;
    align-items:center !important;
    min-height:58px !important;
    padding:0 28px !important;
    color:#fff !important;
    font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif !important;
    font-size:20px !important;
    line-height:1.35 !important;
    font-weight:400 !important;
    letter-spacing:.02em !important;
    border-top:1px solid rgba(255,255,255,.16) !important;
    text-shadow:none !important;
    -webkit-font-smoothing:antialiased;
  }

  .site-header.is-open .global-nav a:first-child{
    border-top:0 !important;
  }

  .site-header.is-open .header-tollfree{
    grid-column:1 / -1 !important;
    grid-row:3 !important;
    position:static !important;
    inset:auto !important;
    width:100% !important;
    min-height:46px !important;
    margin:0 0 14px !important;
    padding:8px 14px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:10px !important;
    white-space:nowrap !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    background:rgba(255,255,255,.14) !important;
    border:1px solid rgba(255,255,255,.20) !important;
    border-radius:16px !important;
    z-index:1 !important;
  }

  .site-header.is-open .header-tollfree-label{
    background:rgba(255,255,255,.24) !important;
    color:#fff !important;
  }

  .site-header.is-open .header-tollfree-number{
    color:#fff !important;
    font-size:20px !important;
    line-height:1 !important;
    font-weight:900 !important;
    text-decoration:none !important;
  }

  .site-header.is-open .header-actions{
    grid-column:1 / -1 !important;
    grid-row:4 !important;
    position:static !important;
    inset:auto !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    z-index:1 !important;
  }

  .site-header.is-open .header-actions .btn{
    width:100% !important;
    min-height:54px !important;
    border-radius:16px !important;
    font-size:15px !important;
  }

  body.menu-open .fixed-cta{
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}

@media (max-width: 374px){
  .site-header.is-open .header-inner{
    width:calc(100% - 36px) !important;
    padding-top:18px !important;
  }

  .site-header.is-open .global-nav{
    margin-top:22px !important;
    margin-bottom:16px !important;
  }

  .site-header.is-open .global-nav a{
    min-height:48px !important;
    padding:0 18px !important;
    font-size:17px !important;
  }

  .site-header.is-open .header-tollfree{
    min-height:42px !important;
    margin-bottom:10px !important;
  }

  .site-header.is-open .header-tollfree-number{
    font-size:18px !important;
  }

  .site-header.is-open .header-actions .btn{
    min-height:50px !important;
    font-size:14px !important;
  }
}
