:root {
  --blue: #118564;
  --blue-deep: #075b48;
  --blue-dark: #04372d;
  --orange: #f6841e;
  --orange-deep: #ff541f;
  --red: #f52c3f;
  --yellow: #fff72d;
  --ink: #202c3a;
  --purple: #2f6f5d;
  --gray: #e8f0ec;
  --canvas: 750px;
  --shadow: 0 14px 30px rgba(18, 35, 57, 0.14);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 18px; }
body {
  margin: 0;
  min-width: var(--canvas);
  background: #c9cfcf;
  color: var(--ink);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 26px;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: .01em;
  -webkit-font-smoothing: antialiased;
}
body > main, .site-footer, .site-header { width: var(--canvas); margin-inline: auto; }
img { display: block; max-width: 100%; height: auto; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 5px solid var(--yellow); outline-offset: 5px; }
.skip-link { position: fixed; top: -120px; left: 20px; z-index: 10000; padding: 14px 24px; background: var(--blue-dark); color: #fff; }
.skip-link:focus { top: 20px; }
.site-header { display: none; }
.container, .container.narrow { width: 100%; max-width: none; margin: 0; padding-inline: 26px; }
h1, h2, h3, p { overflow-wrap: normal; line-break: strict; }
h1, h2, h3 { margin-top: 0; font-weight: 900; line-height: 1.38; letter-spacing: 0; text-wrap: balance; }
p { text-wrap: pretty; }
h2 { margin: 0 0 52px; text-align: center; font-size: 44px; }
h3 { font-size: 34px; }
.section { position: relative; padding: 90px 26px; background: #fff; }
.section > .container, .solution > .container, .final-cta > .container { padding-inline: 0; }
.section-kicker { display: none; }
.marker, .accent-text { color: var(--orange); position: static; }
.marker::after { display: none; }
.mobile-only { display: initial; }
.heading-line { display:block; white-space:nowrap; }
.copy-line { display:block; white-space:nowrap; }
.compact-heading-line { font-size:.88em; }
.compact-line { font-size:.92em; }

@keyframes pulseCTA { 0%,100%{transform:scale(1)} 50%{transform:scale(1.025)} }
@keyframes shineSweep { 0%{left:-28%} 22%,100%{left:128%} }
@keyframes triBounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(18px)} }
@keyframes badgeSparkle { 0%,72%,100%{opacity:.74;transform:scale(.9)} 78%{opacity:1;transform:scale(1.14)} 86%{opacity:.88;transform:scale(1)} }

/* ファーストビュー：元LPと同じ750px固定・人物前面・中央極太コピー */
.hero {
  position: relative;
  width: var(--canvas);
  height: 1379px;
  margin: 0 auto;
  overflow: hidden;
  background: linear-gradient(to bottom,#fff 0 92px,#eaf4f0 92px 799px,#0d8e83 799px,#086f78 100%);
}
.hero::before {
  content: "";
  position: absolute;
  z-index: 4;
  top: 68px;
  left: 0;
  width: 100%;
  height: 72px;
  border-bottom: 7px solid #e8bd54;
  border-radius: 0 0 30px 30px;
  background:
    linear-gradient(112deg,transparent 0 42%,rgba(255,255,255,.16) 43% 49%,transparent 50% 100%) 0 0 / 92px 100%,
    linear-gradient(90deg,#064d3c 0,#14a178 48%,#08745a 72%,#043b30 100%);
  box-shadow: 0 10px 18px rgba(7,64,50,.19),inset 0 3px 0 rgba(255,255,255,.2);
}
.hero-orb { position:absolute; pointer-events:none; }
.hero-orb-one { z-index:5; top:68px; left:0; width:750px; height:65px; background:radial-gradient(circle,rgba(255,255,255,.27) 0 3px,transparent 4px) center / 34px 34px; opacity:.7; }
.hero-orb-two { z-index:5; top:113px; left:356px; width:38px; height:38px; transform:rotate(45deg); border:6px solid #fff; border-radius:7px; background:linear-gradient(135deg,#fff3a4,#e8b63c); box-shadow:4px 4px 10px rgba(5,55,43,.2); }
.hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 110px;
  left: 34px;
  width: 682px;
  height: 500px;
  background: #fff;
  border-radius: 76px 76px 0 0;
  clip-path: polygon(0 0,100% 0,100% 84%,59% 84%,50% 100%,41% 84%,0 84%);
  box-shadow: 0 22px 44px rgba(28,72,62,.1);
}
.hero-grid { position: relative; z-index: 2; width: 100%; height: 100%; padding: 0; }
.hero-grid::before { content:""; position:absolute; z-index:0; top:799px; right:0; bottom:0; left:0; background:radial-gradient(circle at 18% 18%,rgba(100,240,216,.3) 0,rgba(100,240,216,.12) 24%,transparent 48%),radial-gradient(circle at 86% 62%,rgba(45,180,206,.28) 0,transparent 44%),linear-gradient(125deg,transparent 0 28%,rgba(255,255,255,.1) 29% 38%,transparent 39% 67%,rgba(255,255,255,.055) 68% 76%,transparent 77%); box-shadow:inset 0 2px 0 rgba(255,255,255,.22),inset 0 28px 46px rgba(4,63,68,.12); pointer-events:none; }
.hero-copy { position: relative; z-index: 6; width: 100%; height: 100%; }
.eyebrow {
  position: absolute;
  z-index: 10;
  top: 6px;
  left: 0;
  width: 100%;
  margin: 0;
  text-align: center;
  color: #19a97d;
  font-size: 45px;
  font-weight: 900;
  font-style: italic;
  line-height: 1.25;
  letter-spacing: -.07em;
  text-shadow: 2px 2px 0 #075b48;
}
.hero h1 {
  position: absolute;
  z-index: 9;
  top: 181px;
  left: 55px;
  width: 640px;
  margin: 0;
  text-align: center;
  color: #172537;
  font-size: 62px;
  line-height: 1.2;
  letter-spacing: -.055em;
  text-shadow: 2px 4px 0 rgba(0,0,0,.1);
}
.hero h1 .hero-target-line, .hero h1 .hero-offer-line { display:flex; align-items:baseline; justify-content:center; width:100%; white-space:nowrap; }
.hero-target-line { line-height:1; }
.hero-target-intro, .hero-target-tail, .hero-particle, .hero-result-line {
  background:linear-gradient(180deg,#31465a 0%,#172537 48%,#071321 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
}
.hero-target-person, .hero-target-keyword, .hero-offer-main {
  background:linear-gradient(180deg,#ffad43 0%,#ff861f 46%,#ed6308 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
}
.hero-target-person { position:relative; z-index:1; font-size:.98em; letter-spacing:-.09em; text-shadow:2px 4px 0 rgba(170,76,0,.16); }
.hero-target-intro { margin-left:3px; font-size:.88em; letter-spacing:-.075em; }
.hero-target-keyword { position:relative; z-index:1; margin-left:8px; font-size:1.28em; letter-spacing:-.085em; text-shadow:2px 4px 0 rgba(170,76,0,.16); }
.hero-target-tail { margin-left:3px; font-size:.76em; }
.hero-offer-line { margin-top:28px; line-height:1; }
.hero-offer-main { font-size:1.34em; letter-spacing:-.085em; text-shadow:2px 4px 0 rgba(170,76,0,.14); }
.hero-particle { margin-inline:7px 5px; font-size:.58em; letter-spacing:-.04em; }
.hero h1 .hero-result-line { width:510px; margin:34px auto 0; font-size:.98em; letter-spacing:-.08em; }
.hero-lead, .campaign-mini, .visual-caption, .hero-image-wrap { display: none !important; }
.hero-visual { position: absolute; z-index: 3; top: 299px; left: 0; width: 750px; height: 500px; overflow: visible; pointer-events: none; }
.advisor { position:absolute; top:0; display:block; width:314px; height:500px; overflow:hidden; }
.advisor img { position:absolute; top:0; width:1000px; max-width:none; height:auto; }
.advisor-man { left:-50px; }
.advisor-man img { left:-2px; }
.advisor-woman { right:-50px; }
.advisor-woman img { left:-696px; }
.trust-list {
  position: absolute;
  z-index: 12;
  top: 612px;
  left: 9px;
  width: 732px;
  height: 248px;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.trust-list li {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 240px;
  height: 240px;
  padding: 12px 5px 9px;
  border: 10px solid transparent;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 14% 4%,rgba(255,255,255,.98) 0 1.2%,rgba(255,225,117,.74) 2.1%,rgba(255,201,48,.18) 5%,transparent 10%) padding-box,
    radial-gradient(circle at 48% 20%,#4776cc 0,#1c4faa 22%,#0a3995 44%,#052273 67%,#020e50 85%,#000534 100%) padding-box,
    linear-gradient(135deg,#fff6a5 0,#d89b25 19%,#7f4500 38%,#fff1a0 58%,#a9680d 78%,#ffe986 100%) border-box;
  box-shadow:
    inset 0 0 0 3px rgba(255,247,179,.9),
    inset 0 11px 18px rgba(255,255,255,.18),
    inset 0 -20px 28px rgba(0,3,35,.48),
    0 8px 0 #81520d,
    0 15px 23px rgba(0,0,0,.3);
  color: #fff5a8;
  text-align: center;
  font-size: 38px;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -.04em;
  text-shadow: 0 3px 2px rgba(0,0,0,.38),0 0 12px rgba(255,255,255,.12);
}
.trust-list li::before {
  content:"";
  position:absolute;
  z-index:4;
  top:-43px;
  left:-13px;
  width:86px;
  height:86px;
  clip-path:polygon(50% 0,54% 44%,100% 50%,54% 56%,50% 100%,46% 56%,0 50%,46% 44%);
  background:radial-gradient(circle,#fff 0 10%,#fffbe2 18%,#ffe788 38%,rgba(255,192,35,.82) 58%,rgba(255,169,13,0) 78%);
  filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 8px #ffe27a) drop-shadow(0 0 15px rgba(255,167,20,.78));
  animation:badgeSparkle 2.8s ease-in-out infinite;
}
.trust-list li::after { content:""; position:absolute; z-index:1; inset:8px; border-radius:50%; background:linear-gradient(122deg,transparent 17%,rgba(255,255,255,.05) 28%,rgba(255,255,255,.25) 34%,rgba(255,255,255,.04) 41%,transparent 53%); pointer-events:none; }
.trust-list li:nth-child(2)::before { animation-delay:.45s; }
.trust-list li:nth-child(3)::before { animation-delay:.9s; }
.trust-list li span, .trust-list li strong { position:relative; z-index:2; }
.trust-list li span {
  display:block;
  margin-bottom:7px;
  background:none;
  color:#fff;
  -webkit-text-fill-color:#fff;
  font-size:43px;
  font-style:italic;
  line-height:1;
  letter-spacing:-.055em;
  text-shadow:0 3px 1px rgba(0,7,47,.46);
  filter:none;
}
.trust-list li strong {
  display:block;
  padding-inline:.22em;
  background:none;
  color:#fff;
  -webkit-text-fill-color:#fff;
  font-size:56px;
  font-weight:900;
  font-style:italic;
  -webkit-text-stroke:0;
  line-height:.98;
  letter-spacing:-.065em;
  white-space:nowrap;
  filter:none;
  transform:scaleX(.8);
  transform-origin:center;
}
.trust-list li:nth-child(2) strong { font-size:64px; letter-spacing:-.045em; transform:scaleX(.88); }
.trust-list li:nth-child(-n+2) span { margin-bottom:14px; }
.trust-list li.monthly-badge span { margin-bottom:8px; font-size:38px; transform:scaleX(.86); transform-origin:center; }
.trust-list li.monthly-badge strong { font-size:82px; line-height:.78; filter:none; transform:scaleX(.86); }
.trust-list li:nth-child(3) span { font-size:38px; letter-spacing:-.06em; transform:scaleX(.82); transform-origin:center; }
.trust-list li:nth-child(3) strong { margin-top:4px; font-size:48px; line-height:.9; letter-spacing:-.07em; white-space:normal; transform:scaleX(.8); }
.badge-gold,.badge-white,.badge-line,.badge-info,.badge-ok,.badge-major,.badge-minor,.badge-monthly-number,.badge-monthly-value,.badge-monthly-unit,.badge-monthly-more { font:inherit; font-style:inherit; letter-spacing:inherit; }
.badge-gold { display:inline-block; padding:.04em .22em .04em .08em; background:linear-gradient(180deg,#fff7dc 0%,#ead696 19%,#c7a84b 37%,#fffdf1 52%,#e8d8a6 68%,#fff2c9 83%,#b68f32 100%); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; filter:drop-shadow(0 -1px 0 rgba(255,255,255,.78)) drop-shadow(0 4px 2px rgba(0,10,54,.2)); }
.trust-list .badge-gold { background:linear-gradient(180deg,#fff7dc 0%,#ead696 19%,#c7a84b 37%,#fffdf1 52%,#e8d8a6 68%,#fff2c9 83%,#b68f32 100%); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; -webkit-text-stroke:0; text-shadow:none; filter:drop-shadow(0 3px 1px rgba(73,44,0,.2)); }
.badge-white { display:inline-block; padding-inline:.035em; background:none; color:#fff; -webkit-text-fill-color:#fff; }
.badge-line { display:block; padding-inline:.08em; white-space:nowrap; }
.badge-info { font-size:1.08em; }
.badge-ok { position:relative; top:.25em; font-size:.82em; }
.badge-major { display:inline-block; font-size:1.38em; line-height:.79; }
.badge-minor { display:inline-block; margin-left:.02em; font-size:.62em; line-height:1; }
.badge-monthly-number { display:block; padding:.03em .14em 0 .06em; white-space:nowrap; }
.badge-monthly-value { display:inline-block; margin-right:-.115em; padding:.02em .16em .02em .025em; background:linear-gradient(180deg,#fff7dc 0%,#ead696 19%,#c7a84b 37%,#fffdf1 52%,#e8d8a6 68%,#fff2c9 83%,#b68f32 100%); -webkit-background-clip:text; background-clip:text; font-size:1em; line-height:.78; filter:drop-shadow(0 -1px 0 rgba(255,255,255,.78)) drop-shadow(0 3px 1px rgba(96,57,0,.34)); }
.trust-list .badge-monthly-value { margin-bottom:-.08em; padding-bottom:.12em; line-height:.9; }
.trust-list .badge-info { font-size:1.13em; }
.badge-monthly-unit { display:inline-block; margin-left:.035em; font-size:.43em; line-height:1; filter:drop-shadow(0 -1px 0 rgba(255,255,255,.78)) drop-shadow(0 3px 1px rgba(96,57,0,.3)); }
.badge-monthly-more { display:block; margin-top:.1em; font-size:.48em; line-height:.88; letter-spacing:-.05em; }
.campaign-mobile {
  position: absolute;
  z-index: 7;
  top: 922px;
  left: 18px;
  display: block;
  width: 714px;
  height: 225px;
  padding: 0;
  background: url("../uploads/campaign.webp") center / contain no-repeat;
}
.campaign-mobile > span, .campaign-mobile > strong { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.campaign-mobile .campaign-note { position:absolute; left:55px; bottom:1px; width:604px; padding:2px 12px; border-radius:999px; background:rgba(255,255,255,.94); color:#49525c; text-align:center; font-size:15px; font-weight:700; line-height:1.45; }
.campaign-note a, .campaign-section .campaign-grid > div:first-child > p a, .campaign-inline .campaign-note a { color:#0751ad; font-weight:900; text-decoration:underline; text-underline-offset:3px; }

.button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 90px;
  padding: 16px 42px;
  border: 0;
  border-radius: 20px;
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-size: 32px;
  font-weight: 900;
  line-height: 1.25;
  cursor: pointer;
  overflow: hidden;
}
.button::after { content:""; position:absolute; top:-25%; left:-28%; width:90px; height:150%; transform:skewX(-18deg); background:linear-gradient(100deg,transparent,rgba(255,255,255,.25) 35%,rgba(255,255,255,.8) 50%,rgba(255,255,255,.25) 65%,transparent); animation:shineSweep 3.6s linear infinite; }
.button-primary, .button-small { border:6px solid #ff4557; border-bottom-color:#b90b22; background:linear-gradient(#ff7b88 0,#f52c3f 28%,#e90e2b 100%); box-shadow:0 9px 0 #ad0c21,0 14px 24px rgba(83,12,24,.2),inset 0 4px 0 rgba(255,255,255,.38); }
.button-light, .button-ghost { border:5px solid #fff; background:#fff; color:var(--blue-deep); box-shadow:0 8px 0 #d5dce5,0 14px 24px rgba(8,30,78,.18); }
.button-disabled { width:100%; border:0; background:#ced6dc; color:#5c6975; box-shadow:none; cursor:not-allowed; }
.button-disabled::after, .button-ghost::after { display:none; }
.hero .button-primary { position:absolute; z-index:9; top:1154px; left:26px; width:698px; height:112px; animation:pulseCTA 2.4s ease-in-out infinite; font-size:39px; }
.hero .button-primary::before { content:"無料"; position:absolute; left:-14px; top:-24px; display:grid; width:104px; height:104px; place-items:center; border-radius:50%; background:#fff; color:var(--red); font-size:27px; transform:rotate(-8deg); }
.cta-note { color:#354250; font-size:19px; text-align:center; }
.hero .cta-note { position:absolute; z-index:9; top:1284px; left:0; width:100%; margin:0; color:#fff; font-weight:700; }

.card-grid, .genre-grid, .point-grid, .reason-grid, .case-grid { display:grid; }
.center-cta { margin-top:58px; text-align:center; }
.center-cta .button { min-width:620px; }
.center-cta p { margin:24px 0 0; font-size:21px; font-weight:700; }
.section-closing, .section-note { text-align:center; }

/* お悩みランキング */
.section-worries { padding-top:104px; background:#f7f7f2; box-shadow:inset 0 -16px 0 var(--orange); }
.section-worries h2::after { content:"お悩みランキング"; display:block; margin-top:5px; color:var(--orange); font-size:52px; }
.worries-grid { gap:42px; padding:10px 30px 0 48px; }
.worry-card { position:relative; min-height:310px; padding:46px 45px 40px 82px; border-radius:28px; background:#fff; box-shadow:var(--shadow); text-align:center; }
.worry-card .card-number { position:absolute; top:-22px; left:-56px; display:grid; width:110px; height:110px; place-items:center; border-radius:50%; background:linear-gradient(145deg,#ffc05d,#ff861f); color:#fff; font-size:38px; font-weight:900; box-shadow:0 7px 16px rgba(246,132,30,.24); }
.worry-card .simple-icon { display:none; }
.worry-card h3 { margin-bottom:20px; color:#263547; font-size:34px; }
.worry-card:not(:first-child) h3 .heading-line:first-child { color:#d83f2f; }
.worry-card:first-child h3 .heading-line { font-size:34px; letter-spacing:-.035em; }
.worry-card:first-child h3 em { color:#d83f2f; font-style:normal; }
.worry-card:nth-child(3) h3 .compact-line { font-size:30px; letter-spacing:-.04em; }
.worry-card p { margin:0; color:#4f5967; font-size:22px; line-height:1.65; }
.bridge-message { margin:66px 24px 0; text-align:center; }
.bridge-message p { font-size:31px; font-weight:700; }
.bridge-message strong { color:var(--orange); font-size:36px; }
.bridge-message strong .heading-line:last-child { color:var(--ink); font-size:.88em; }

/* 副業スクールとは・図解 */
.genre-section { padding-top:120px; overflow:hidden; background:linear-gradient(150deg,rgba(221,242,234,.78) 0 18%,transparent 18% 100%) 0 0 / 180px 180px,#fff; }
.genre-section .container { position:relative; }
.two-column-intro { position:relative; z-index:2; display:block; }
.two-column-intro > div:first-child { width:100%; }
.two-column-intro h2 { text-align:center; font-size:43px; }
.two-column-intro h2 .marker { font-size:39px; }
.intro-copy { margin:0 22px 55px; padding:38px 40px; border:5px solid var(--blue); background:#fff; box-shadow:12px 12px 0 #64b89c; }
.intro-copy p { margin:0 0 24px; font-size:23px; }
.intro-copy p:last-child { margin-bottom:0; color:var(--orange); font-size:25px; }
.genre-grid { grid-template-columns:repeat(2,1fr); gap:22px; }
.genre-grid article { min-height:420px; padding:24px 20px 30px; border:3px solid #d7e7e0; border-radius:22px; background:#fff; box-shadow:0 8px 0 #dce8e3; text-align:center; }
.genre-grid article:nth-child(3n+1) { border-top:14px solid #20a97e; }
.genre-grid article:nth-child(3n+2) { border-top:14px solid #f12d55; }
.genre-grid article:nth-child(3n) { border-top:14px solid #ffb11f; }
.genre-code { display:inline-block; margin-bottom:12px; color:var(--blue); font-size:17px; font-weight:900; letter-spacing:.08em; }
.genre-grid h3 { margin-bottom:14px; font-size:31px; }
.genre-grid p { margin:0; color:#515d69; font-size:21px; line-height:1.55; }
.genre-illustration { display:block; width:210px; height:210px; margin:0 auto 2px; background-image:url("assets/genre-icons-v4.png"); background-repeat:no-repeat; background-size:300% 200%; }
.genre-1 { background-position:0 0; }
.genre-2 { background-position:50% 0; }
.genre-3 { background-position:100% 0; }
.genre-4 { background-position:0 100%; }
.genre-5 { background-position:50% 100%; }
.genre-6 { background-position:100% 100%; }

/* 落とし穴 */
.pitfalls { padding-bottom:38px; background:var(--gray); }
.pitfalls::before { content:""; position:absolute; top:-1px; left:286px; border:89px solid transparent; border-top:58px solid #fff; animation:triBounce 2.4s ease-in-out infinite; }
.pitfalls h2 { margin-top:60px; }
.pitfalls h2 .accent-text { font-size:1.08em; }
.pitfall-list { display:grid; gap:24px; }
.pitfall-list article { position:relative; min-height:310px; padding:47px 42px 36px 105px; border:4px solid #d1d8dc; border-radius:25px; background:#fff; box-shadow:0 12px 22px rgba(54,65,75,.1); }
.pitfall-list article > span { position:absolute; top:30px; left:-18px; display:grid; width:96px; height:96px; place-items:center; border-radius:50%; background:var(--purple); color:#fff; font-size:33px; font-weight:900; box-shadow:0 7px 0 #342660; }
.pitfall-list h3 { margin-bottom:18px; color:#263547; }
.pitfall-list p { margin:0; color:#515d69; font-size:24px; }
.section-closing { margin:54px 0 0; font-size:29px; }
.section-closing strong { color:var(--orange); }

/* 解決：元LPの店頭カード構成 */
.solution { position:relative; width:750px; margin:0 auto; padding:28px 0 96px; overflow:hidden; background:#e7edef; }
.solution-stage { width:100%; }
.solution-main-card { position:relative; width:694px; min-height:910px; margin:0 auto; overflow:visible; border-radius:42px 42px 62px 62px; background:#fff; box-shadow:0 20px 42px rgba(44,64,65,.14); }
.solution-main-card::after { content:""; position:absolute; z-index:2; left:50%; bottom:-62px; width:160px; height:64px; transform:translateX(-50%); background:#fff; clip-path:polygon(0 0,100% 0,50% 100%); filter:drop-shadow(0 8px 7px rgba(52,73,76,.08)); }
.solution-awning { position:absolute; z-index:5; top:0; left:0; width:100%; height:72px; border-radius:42px 42px 0 0; background:repeating-linear-gradient(90deg,#ff821f 0 69px,#d3d5d7 69px 138px); }
.solution-awning::after { content:""; position:absolute; left:0; bottom:-34px; width:100%; height:36px; background:radial-gradient(ellipse at 34.5px 0,#ff821f 0 34px,transparent 35px) 0 0 / 138px 36px repeat-x,radial-gradient(ellipse at 34.5px 0,#d3d5d7 0 34px,transparent 35px) 69px 0 / 138px 36px repeat-x; }
.solution-main-copy { position:relative; z-index:2; padding:154px 35px 0; text-align:center; }
.solution-brand { margin:0 0 6px; background:linear-gradient(100deg,#0754a1 0%,#0fa58a 42%,#0cb9aa 100%); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; font-size:70px; font-weight:900; font-style:italic; line-height:1; letter-spacing:-.09em; filter:drop-shadow(2px 3px 0 rgba(4,73,98,.14)); }
.solution-main-copy h2 { display:flex; align-items:baseline; justify-content:center; gap:8px; margin:22px 0 44px; line-height:1; }
.solution-main-copy h2 small { color:#172537; font-size:52px; font-weight:900; }
.solution-main-copy h2 strong { background:linear-gradient(180deg,#ffa643 0%,#ff821f 48%,#ef650d 100%); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; font-size:112px; font-weight:900; letter-spacing:-.09em; filter:drop-shadow(2px 4px 0 rgba(167,64,0,.12)); }
.solution-promise { margin:0; color:#172537; text-align:center; font-size:41px; font-weight:900; line-height:1.42; letter-spacing:-.07em; }
.solution-promise > span { display:block; white-space:nowrap; }
.solution-accent { color:var(--orange); }
.solution-badges { position:absolute; z-index:4; left:24px; bottom:13px; display:flex; gap:0; margin:0; padding:0; list-style:none; }
.solution-badges li { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; width:190px; height:190px; margin-right:-5px; padding:14px 5px 8px; border:8px solid transparent; border-radius:50%; background:radial-gradient(circle at 48% 16%,#3b6fc5 0,#15479e 29%,#092c7e 58%,#03115a 82%,#01063a 100%) padding-box,linear-gradient(135deg,#fff7b3 0,#db9f2b 20%,#794200 39%,#fff3ab 58%,#aa690d 78%,#ffec91 100%) border-box; box-shadow:inset 0 0 0 3px rgba(255,249,190,.9),inset 0 -15px 24px rgba(0,3,35,.45),0 7px 0 #81520d,0 12px 18px rgba(0,0,0,.26); text-align:center; }
.solution-badges li::before { content:""; position:absolute; top:-2px; left:3px; width:48px; height:48px; clip-path:polygon(50% 0,54% 44%,100% 50%,54% 56%,50% 100%,46% 56%,0 50%,46% 44%); background:radial-gradient(circle,#fff 0 10%,#fffbe2 18%,#ffe788 38%,rgba(255,192,35,.82) 58%,transparent 78%); filter:drop-shadow(0 0 5px #ffe27a); }
.solution-badges li span { display:block; margin-bottom:5px; color:#fff; font-size:31px; font-weight:900; font-style:italic; line-height:1; letter-spacing:-.055em; text-shadow:0 3px 1px rgba(0,7,47,.46); }
.solution-badges li strong { display:block; padding-inline:.22em; background:none; color:#fff; -webkit-text-fill-color:#fff; font-size:45px; font-weight:900; font-style:italic; -webkit-text-stroke:0; line-height:.94; letter-spacing:-.075em; filter:drop-shadow(0 2px 1px rgba(0,7,47,.32)); }
.solution-badges li strong { transform:scaleX(.8); transform-origin:center; }
.solution-badges li.monthly-badge span { margin-bottom:7px; font-size:28px; transform:scaleX(.86); transform-origin:center; }
.solution-badges li.monthly-badge strong { font-size:64px; line-height:.78; white-space:nowrap; filter:none; transform:scaleX(.84); }
.solution-badges li:nth-child(2) strong { font-size:56px; letter-spacing:-.055em; white-space:nowrap; transform:scaleX(.88); }
.solution-badges li:nth-child(-n+2) span { margin-bottom:12px; }
.solution-badges li:nth-child(3) span { font-size:29px; transform:scaleX(.82); transform-origin:center; }
.solution-badges li:nth-child(3) strong { margin-top:3px; background:none; font-size:40px; line-height:.9; letter-spacing:-.075em; transform:scaleX(.8); }
.solution-advisor { position:absolute; z-index:3; right:3px; bottom:0; display:block; width:265px; height:390px; overflow:hidden; }
.solution-advisor img { position:absolute; top:0; left:0; width:850px; max-width:none; height:auto; }
.solution-section-title { display:flex; align-items:baseline; justify-content:center; gap:20px; width:750px; min-height:112px; margin:112px 0 0; padding:20px 32px; background:linear-gradient(105deg,#0751ad 0%,#0872b3 49%,#12bfa6 100%); color:#fff; text-align:center; }
.solution-section-title span { color:#fff; font-size:52px; font-style:italic; letter-spacing:-.08em; }
.solution-section-title small { font-size:31px; }
.solution-panel { position:relative; width:638px; margin:82px auto 0; padding:124px 48px 48px; border:8px solid #0751ad; background:#fff; box-shadow:10px 12px 0 rgba(17,133,100,.13); }
.solution-panel > h3 { position:absolute; top:22px; left:24px; width:574px; margin:0; padding:25px 18px; background:linear-gradient(105deg,#0751ad 0%,#0872b3 52%,#12bfa6 100%); color:#fff; text-align:center; font-size:35px; }
.solution-panel > h3 em { color:#fff33a; font-style:normal; }
.solution-panel p { margin-top:12px; font-size:26px; }
.check-list, .final-trust { margin:30px 0; padding:0; list-style:none; }
.check-list li, .final-trust li { position:relative; margin:14px 0; padding-left:44px; font-size:24px; font-weight:700; }
.check-list li::before, .final-trust li::before { content:"✓"; position:absolute; left:0; color:var(--orange); font-size:31px; font-weight:900; }
.solution-panel .button { width:100%; margin-top:12px; }

/* 無料相談でわかること */
.points { padding:110px 26px 94px; background:var(--orange) url("../uploads/point_bg.webp") top center / 100% auto no-repeat; }
.points h2 { color:#fff; text-shadow:0 4px 0 rgba(104,46,0,.2); }
.points h2 .marker { display:block; color:var(--yellow); font-size:54px; }
.point-grid { gap:48px; }
.point-grid article { position:relative; min-height:390px; padding:115px 48px 45px; border-radius:36px; background:#fff; box-shadow:0 12px 0 rgba(158,65,0,.22),0 24px 35px rgba(80,35,0,.14); text-align:center; }
.point-label { position:absolute; top:-48px; left:50%; display:grid; width:148px; height:148px; transform:translateX(-50%); place-items:center; border-radius:50%; background:var(--orange-deep); color:#fff; font-size:23px; font-weight:900; letter-spacing:.05em; box-shadow:0 7px 0 #b83918; }
.point-grid h3 { margin-bottom:20px; color:#d83f2f; font-size:39px; }
.point-grid p { margin:0; color:#4c5663; font-size:23px; }
.comparison-wrap { margin-top:72px; padding:45px 34px 34px; border:6px solid var(--blue); border-radius:30px; background:#fff; box-shadow:10px 12px 0 rgba(7,91,72,.2); }
.comparison-heading { text-align:center; }
.comparison-heading span { display:inline-block; padding:6px 24px; border-radius:999px; background:var(--blue); color:#fff; font-size:21px; font-weight:900; }
.comparison-heading h3 { margin:17px 0 6px; font-size:35px; }
.comparison-heading p { margin:0 0 28px; font-size:21px; }
.single-line-copy { white-space:nowrap; font-size:19px !important; letter-spacing:-.02em; }
.table-scroll { overflow:hidden; border-radius:14px; }
table { width:100%; border-collapse:collapse; font-size:19px; line-height:1.45; }
th, td { padding:14px 12px; border:2px solid #d9e0e6; text-align:left; }
thead th { background:var(--blue); color:#fff; }
tbody th { color:var(--blue-deep); }
tbody td:last-child { color:var(--orange); text-align:center; font-size:26px; font-weight:900; }
.points .center-cta .button { background:#fff; border-color:#fff; color:var(--red); box-shadow:0 9px 0 #d9d9d9; }
.points .center-cta p { color:#fff; }

/* 30秒診断 */
.quiz-section { padding:100px 38px; background:url("../uploads/process_bg.webp") center / cover no-repeat var(--blue-deep); }
.quiz-intro h2, .quiz-intro > p { color:#fff; }
.quiz-intro h2 .marker { color:var(--yellow); }
.quiz-intro > p { margin:-22px 26px 34px; text-align:center; font-size:23px; }
.quiz-benefit { width:570px; margin:0 auto 35px; padding:14px 26px; border-radius:999px; background:var(--yellow); color:var(--blue-deep); text-align:center; font-size:22px; font-weight:900; }
.quiz-card { padding:40px; border:7px solid var(--yellow); border-radius:34px; background:#fff; box-shadow:0 14px 0 rgba(0,0,0,.18); }
.quiz-topline { display:flex; align-items:center; gap:22px; margin-bottom:34px; color:var(--blue); font-weight:900; }
.quiz-progress { flex:1; height:15px; overflow:hidden; border-radius:999px; background:#e3e8ec; }
.quiz-progress span { display:block; width:20%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--orange),#ffb21f); }
.quiz-question { margin:0; padding:0; border:0; }
.quiz-question legend { margin-bottom:28px; color:var(--ink); font-size:34px; font-weight:900; }
.quiz-question label { display:block; margin:14px 0; cursor:pointer; }
.quiz-question input { position:absolute; opacity:0; }
.quiz-question label span { display:block; padding:20px 26px; border:4px solid #dfe5ea; border-radius:16px; background:#f8fafb; color:#3e4b59; font-size:24px; font-weight:700; }
.quiz-question input:checked + span { border-color:var(--orange); background:#fff3e7; color:#b84414; }
.quiz-actions, .quiz-result-actions { display:flex; gap:18px; margin-top:34px; }
.quiz-actions .button, .quiz-result-actions .button { flex:1; min-height:72px; padding:12px 22px; font-size:25px; }
.quiz-result { text-align:center; }
.quiz-result-label { color:var(--orange); font-size:20px; font-weight:900; }
.quiz-result h3 { margin:12px 0 20px; color:var(--blue-deep); }
.quiz-result-tags { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.quiz-result-tags span { padding:8px 18px; border-radius:999px; background:#e8f0ff; color:var(--blue); font-size:19px; font-weight:900; }

/* ご相談の流れ */
.process { padding:108px 44px; background:linear-gradient(rgba(4,84,65,.8),rgba(4,84,65,.8)),url("../uploads/process_bg.webp") center / 100% 100% no-repeat var(--blue-deep); }
.process-heading { width:100%; margin:0 auto; }
.process-brand { position:relative; z-index:3; width:100%; margin:-22px auto 0; color:#fff; text-align:center; font-size:47px; font-weight:900; font-style:italic; line-height:1.2; letter-spacing:-.06em; text-shadow:3px 3px 0 #04372d,0 0 14px rgba(255,255,255,.15); }
.process-title-art { position:relative; width:615px; height:285px; margin:4px auto 0; }
.process-title-art h2 { position:absolute; z-index:1; top:18px; left:7px; display:flex; width:601px; height:150px; margin:0; padding:0 78px 0 96px; align-items:center; justify-content:center; border-radius:78px; background:#ffff32; color:#07519b; box-shadow:inset 0 4px 0 rgba(255,255,255,.35); text-align:center; font-size:52px; line-height:1.1; }
.process-title-art h2::after { content:""; position:absolute; left:50%; bottom:-70px; transform:translateX(-50%); border:38px solid transparent; border-top:72px solid #ffff32; }
.process-title-art h2 span { position:absolute; z-index:3; top:-18px; left:-8px; display:grid; width:112px; height:112px; place-items:center; border-radius:50%; background:#fa2d43; color:#fff; font-size:42px; font-weight:900; font-style:italic; line-height:1; letter-spacing:-.08em; text-indent:-10px; text-shadow:2px 3px 0 rgba(150,0,18,.18); box-shadow:0 7px 0 rgba(143,0,17,.15); }
.process-title-art > img { position:absolute; z-index:2; top:-58px; left:0; width:100%; max-width:none; clip-path:polygon(80% 35%,100% 35%,100% 100%,56% 100%,56% 70%,68% 70%,80% 58%); }
.process-list { display:flex; flex-direction:column; gap:14px; margin:-14px 0 0; padding:0; }
.process-step { position:relative; }
.process-step > img { width:100%; }
.process-step > p { position:absolute; top:63%; left:30.7%; right:5%; transform:translateY(-50%); margin:0; color:#3a3a55; text-align:left; font-size:26px; font-weight:500; line-height:1.6; letter-spacing:.01em; }
.process-step-2 > p { top:61%; }
.process-step-3 > h3 { position:absolute; z-index:2; top:34px; left:198px; right:24px; min-height:106px; margin:0; padding:0 4px; background:#fff; color:#09529a; text-align:left; font-size:39px; line-height:1.2; letter-spacing:-.03em; }
.process-step-3 > p { top:65%; right:4%; font-size:24px; line-height:1.48; }
.process-arrow { width:58px; margin:-14px auto -8px; }
.process .center-cta p { color:#fff; }

/* 選ばれる理由 */
.reasons { padding-top:112px; background:linear-gradient(rgba(239,249,245,.78),rgba(255,255,255,.78)),url("../uploads/reason_bg.webp") top center / 100% auto repeat-y #fff; }
.reasons-heading h2 span { display:block; color:var(--ink); font-size:43px; }
.reasons-heading h2 b { color:var(--blue); font-size:47px; font-style:italic; }
.reason-grid { gap:32px; }
.reason-grid article { position:relative; min-height:590px; padding:342px 44px 38px; border:3px solid #dce9e4; border-radius:28px; background:#fff; box-shadow:var(--shadow); text-align:center; }
.reason-grid .reason-number { position:absolute; z-index:2; top:-25px; left:50%; display:grid; width:118px; height:118px; transform:translateX(-50%); place-items:center; border-radius:50%; background:var(--orange); color:#fff; font-size:39px; font-weight:900; box-shadow:0 7px 0 #b74416; }
.reason-illustration { position:absolute; top:78px; left:50%; display:block; width:270px; height:270px; transform:translateX(-50%); background-image:url("assets/reason-icons-v4.png"); background-repeat:no-repeat; background-size:200% 200%; }
.reason-1 { background-position:0 0; }
.reason-2 { background-position:100% 0; }
.reason-3 { background-position:0 100%; }
.reason-4 { background-position:100% 100%; }
.reason-grid h3 { margin-bottom:18px; }
.reason-grid p { margin:0; color:#555f6b; font-size:22px; }
.light-cta .button { border-color:var(--red); background:linear-gradient(#ff7b88 0,#f52c3f 28%,#e90e2b 100%); color:#fff; }

/* ご相談イメージ */
.cases { padding-top:104px; background:url("../uploads/case_bg.webp") center top / 100% auto repeat-y #eff8f5; }
.cases h2 { color:var(--blue-deep); }
.section-note { margin:-24px 25px 48px; color:#5e6874; font-size:20px; }
.case-grid { gap:34px; }
.case-grid article { overflow:hidden; border:5px solid var(--blue); border-radius:28px; background:#fff; box-shadow:10px 12px 0 rgba(17,133,100,.14); }
.case-meta { display:flex; align-items:center; justify-content:space-between; padding:18px 28px; background:linear-gradient(90deg,var(--blue),#43b58f); color:#fff; font-size:21px; font-weight:900; }
.case-person { float:right; display:block; width:210px; height:213px; margin:20px 20px 8px 10px; background-image:url("assets/case-people-v4.png"); background-repeat:no-repeat; background-size:200% 200%; }
.case-person-1 { background-position:0 0; }
.case-person-2 { background-position:100% 0; }
.case-person-3 { background-position:0 100%; }
.case-person-4 { background-position:100% 100%; }
.case-grid h3, .case-grid > article > p { padding-inline:34px; }
.case-grid h3 { margin:32px 0 20px; font-size:32px; }
.case-grid > article > p { margin:0 0 26px; font-size:23px; }
.organize { clear:both; margin:0 24px 28px; padding:23px 26px; border-radius:18px; background:#edf7f3; }
.organize span { color:var(--orange); font-size:20px; font-weight:900; }
.organize p { margin:6px 0 0; font-size:22px; }

/* キャンペーン */
.campaign-section { padding:90px 26px 80px; background:var(--orange); }
.campaign-section h2, .campaign-section .campaign-grid > div:first-child > p { color:#fff; text-align:center; }
.campaign-section .campaign-grid > div:first-child > p { margin:-22px 20px 38px; font-size:21px; }
.campaign-card { position:relative; padding:270px 42px 44px; border-radius:32px; background:#fff; box-shadow:0 13px 0 rgba(126,47,0,.23); text-align:center; }
.campaign-card::before { content:""; position:absolute; top:24px; left:15px; width:calc(100% - 30px); height:225px; background:url("../uploads/campaign.webp") center / contain no-repeat; }
.campaign-condition, .campaign-card > p, .campaign-card > strong { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.campaign-card .campaign-note { display:block; margin:0 0 25px; color:#5a6570; font-size:18px; font-weight:700; line-height:1.55; }
.campaign-card .button { width:100%; }

/* 特典詳細 */
.campaign-details { width:750px; margin:0 auto; padding:78px 38px 82px; scroll-margin-top:24px; background:#eef6ff; color:#263547; }
.campaign-details .container { width:100%; padding:0; }
.campaign-details h1, .campaign-details h2 { position:relative; margin:0 0 56px; text-align:center; font-size:46px; }
.campaign-details h1::after, .campaign-details h2::after { content:""; position:absolute; left:50%; bottom:-20px; width:260px; height:3px; transform:translateX(-50%); background:linear-gradient(90deg,#c7d4e1 0 36%,#0876e8 36% 64%,#c7d4e1 64%); }
.campaign-details-lead { margin:0 auto 36px; text-align:center; font-size:20px; line-height:1.75; }
.campaign-details-lead strong { font-weight:900; background:linear-gradient(transparent 67%,#fff0a3 67%); }
.campaign-benefit-table { overflow:hidden; border:6px solid #fff; border-radius:8px; background:#fff; box-shadow:0 9px 20px rgba(42,78,112,.14); }
.campaign-benefit-row { display:grid; grid-template-columns:1fr 235px; min-height:132px; align-items:center; border-left:6px solid #c8c8c8; background:#fff; }
.campaign-benefit-row + .campaign-benefit-row { border-top:1px solid #dce8f3; }
.campaign-benefit-row:nth-child(2) { border-left-color:#0876e8; background:#edf6ff; }
.campaign-benefit-row:nth-child(3) { border-left-color:#ff9d18; background:#fffbed; }
.campaign-benefit-row > p { margin:0; padding:24px 14px; font-size:22px; font-weight:900; line-height:1.5; }
.campaign-benefit-row > strong { position:relative; display:flex; align-items:baseline; justify-content:flex-end; padding:28px 18px 20px 0; color:#0876e8; white-space:nowrap; }
.campaign-benefit-row > strong b { font-size:57px; font-weight:900; letter-spacing:-.055em; line-height:1; }
.campaign-benefit-row > strong small { margin-left:5px; font-size:19px; font-weight:900; }
.campaign-benefit-row > strong em { position:absolute; top:11px; right:15px; padding:4px 11px; border-radius:999px; background:#ff9d18; color:#fff; font-size:15px; font-style:normal; line-height:1; }
.campaign-details-note { margin:20px 0 0; color:#5d6873; text-align:center; font-size:16px; }
.campaign-details-page main { min-height:100vh; background:#eef6ff; }
.campaign-details-page .campaign-details { min-height:100vh; padding-top:92px; }
.campaign-details-back { display:flex; justify-content:center; margin-top:42px; }
.campaign-details-back a { display:inline-flex; align-items:center; justify-content:center; min-width:270px; padding:16px 30px; border:3px solid #0876e8; border-radius:999px; background:#fff; color:#0876e8; font-size:20px; font-weight:900; text-decoration:none; }

/* FAQ */
.faq { padding-top:100px; background:#fff; }
.faq h2 { color:var(--blue-deep); }
.faq h2::before { content:"FAQ"; display:block; margin-bottom:-4px; color:var(--blue); font-size:75px; font-style:italic; }
.faq-list { display:grid; gap:22px; }
.faq-list details { overflow:hidden; border:4px solid #dce2e7; border-radius:22px; background:#fff; box-shadow:0 7px 0 #e0e4e7; }
.faq-list summary { position:relative; display:flex; gap:18px; padding:27px 68px 27px 28px; color:#29384a; font-size:25px; font-weight:900; line-height:1.5; cursor:pointer; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; top:50%; right:27px; transform:translateY(-50%); color:var(--orange); font-size:42px; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list summary > span { color:var(--blue); font-size:33px; }
.faq-list details > div { display:flex; gap:20px; padding:27px 32px; border-top:3px solid #e3e7ea; background:#f6f8fa; }
.faq-list details > div > span { color:var(--orange); font-size:34px; font-weight:900; }
.faq-list details p { margin:0; font-size:22px; }

/* 予約 */
.final-cta { position:relative; width:750px; margin:0 auto; padding:88px 32px 70px; background:var(--orange); }
.final-cta h2, .final-cta .booking-grid > div:first-child > p { color:#fff; text-align:center; }
.final-cta h2 { font-size:43px; text-shadow:0 4px 0 rgba(102,43,0,.2); }
.final-cta .booking-grid > div:first-child > p { margin:-20px 26px 30px; font-size:23px; }
.final-trust { display:flex; justify-content:center; gap:16px; margin:0 0 38px; }
.final-trust li { padding:10px 18px 10px 44px; border-radius:999px; background:#fff; color:var(--blue-deep); font-size:18px; }
.final-trust li::before { left:14px; top:3px; }
.booking-card { min-width:0; padding:34px 28px 38px; border-radius:30px; background:#fff; box-shadow:0 13px 0 rgba(126,47,0,.23); }
.campaign-inline { position:relative; min-height:205px; margin-bottom:52px; background:url("../uploads/campaign.webp") center / contain no-repeat; text-align:center; }
.campaign-inline > span, .campaign-inline > strong { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.campaign-inline .campaign-note { position:absolute; top:199px; left:0; width:100%; color:#5a6570; font-size:17px; font-weight:700; line-height:1.5; }
.booking-pending, .booking-ready { text-align:center; }
.booking-pending h3, .booking-ready h3 { margin:0 0 12px; color:var(--blue-deep); font-size:34px; }
.booking-pending > p, .booking-ready > p { font-size:21px; }
.status-badge { display:inline-block; margin-bottom:15px; padding:7px 16px; border-radius:999px; background:#fff0df; color:#b94b13; font-size:18px; font-weight:900; }
.timerex-shell { min-width:0; margin:28px 0 24px; overflow:hidden; border:4px solid #dfe4e8; border-radius:20px; background:#fff; }
#timerex_calendar, #timerex_calendar > div, #timerex_calendar iframe { width:100% !important; max-width:100% !important; min-width:0 !important; }
.timerex-loading { padding:40px 20px; color:#5a6570; font-size:20px; }
.booking-fallback { width:100%; min-height:64px; padding:12px 22px; border:3px solid #dce1e5; box-shadow:none; font-size:19px; }
.privacy-note { margin:28px 6px 0; color:#5a6570; font-size:17px; text-align:center; }

/* フッター・固定CTA */
.site-footer { padding:44px 34px 120px; background:var(--blue-deep); color:#fff; text-align:center; }
.footer-grid, .footer-notes { padding-inline:0; }
.footer-brand { margin-bottom:12px; color:#9ee8cf; font-size:38px; font-weight:900; font-style:italic; }
.service-logo {
  display:inline-block;
  background-image:
    linear-gradient(112deg,transparent 0 28%,rgba(255,255,255,.82) 34%,rgba(255,255,255,.18) 39%,transparent 46%),
    linear-gradient(102deg,#064b39 0%,#08785a 28%,#0da276 58%,#5cdbb4 100%);
  background-position:56% 0,0 0;
  background-size:190% 100%,100% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
  font-style:italic;
  font-weight:900;
  letter-spacing:-.095em;
  text-shadow:none;
  filter:drop-shadow(0 3px 1px rgba(0,65,45,.18)) drop-shadow(0 0 10px rgba(34,193,144,.14));
  transform:skewX(-5deg);
  transform-origin:center;
}
.service-logo-on-dark {
  background-image:
    linear-gradient(112deg,transparent 0 28%,rgba(255,255,255,.95) 34%,rgba(255,255,255,.24) 39%,transparent 46%),
    linear-gradient(102deg,#f0fff8 0%,#91f1d0 38%,#39d69e 100%);
  filter:drop-shadow(0 3px 1px rgba(0,45,31,.3)) drop-shadow(0 0 11px rgba(77,225,177,.2));
}
.eyebrow.service-logo { font-size:49px; letter-spacing:-.095em; }
.solution-brand.service-logo { filter:drop-shadow(0 3px 1px rgba(0,65,45,.18)) drop-shadow(0 0 12px rgba(34,193,144,.14)); }
.solution-section-title .service-logo { color:transparent; -webkit-text-fill-color:transparent; }
.reasons-heading h2 .service-logo { color:transparent; -webkit-text-fill-color:transparent; }
.footer-grid p { margin:0 0 26px; font-size:19px; }
.site-footer nav { display:flex; flex-wrap:wrap; justify-content:center; gap:14px 24px; }
.site-footer nav a, .site-footer nav button { border:0; border-bottom:1px solid currentColor; background:transparent; color:#fff; font-size:17px; cursor:pointer; }
.footer-notes { margin-top:35px; padding-top:28px; border-top:1px solid rgba(255,255,255,.3); }
.footer-notes p { margin:0 0 15px; color:#d8eee7; font-size:15px; line-height:1.7; }
.footer-notes small { font-size:15px; }
.mobile-cta { position:fixed; z-index:5000; left:50%; bottom:0; display:flex; width:750px; height:98px; transform:translate(-50%,110%); align-items:center; justify-content:center; gap:22px; padding:10px 28px; background:linear-gradient(#ff5568,#ef1532); box-shadow:0 -6px 18px rgba(0,0,0,.2),inset 0 4px 0 rgba(255,255,255,.27); color:#fff; transition:transform .25s ease; }
.mobile-cta.is-active { transform:translateX(-50%); }
.mobile-cta.is-active.is-hidden { transform:translate(-50%,110%); }
.mobile-cta span { font-size:19px; font-weight:800; }
.mobile-cta a { display:flex; align-items:center; justify-content:center; min-width:430px; height:70px; border:4px solid #fff; border-radius:17px; background:#fff; color:var(--red); text-decoration:none; font-size:30px; font-weight:900; box-shadow:0 5px 0 #c9c9c9; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
}
