:root { --red:#e10e13; --ink:#050505; --paper:#fff; }
* { box-sizing:border-box; }
html { background:#050505; }
body { margin:0; color:var(--paper); font-family:"Yu Mincho","Hiragino Mincho ProN",serif; }
.hero { position:relative; isolation:isolate; height:49.1vw; min-height:0; overflow:hidden; background:#040404; }
.hero:has(.hero__visual picture), .hero { }
.hero__visual { position:absolute; inset:0; z-index:-3; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero__visual>img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero__shade { position:absolute; z-index:-2; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.98) 0%,rgba(0,0,0,.94) 31%,rgba(0,0,0,.25) 60%,rgba(0,0,0,.08)),linear-gradient(0deg,rgba(0,0,0,.8),transparent 35%); }
.hero__hud { position:absolute; z-index:-1; inset:0; pointer-events:none; }.hud { position:absolute; display:block; object-fit:contain; filter:drop-shadow(0 .2vw .55vw rgba(220,0,0,.35)); }.hud--map { top:4.1vw; left:40.5vw; width:17vw; }.hud--alert { top:5.8vw; left:75.5vw; width:18vw; }.hud--trace { top:27.2vw; left:55vw; width:18vw; }.hud--risk { top:31vw; left:72vw; width:15.3vw; }
.hero__content { width:min(48vw,48rem); padding:clamp(2.1rem,3.1vw,3.2rem) 0 11vw; margin-left:clamp(2rem,4.5vw,4.6rem); }
.hero__eyebrow { margin:0 0 clamp(1rem,1.3vw,1.35rem); padding-bottom:.65vw; border-bottom:1px solid #991a1a; width:fit-content; color:#e9d9b7; font-family:"Yu Gothic",sans-serif; font-size:clamp(.68rem,.95vw,.95rem); font-weight:700; letter-spacing:.05em; }
h1 { margin:0; color:#fff; font-size:clamp(2rem,3.7vw,3.8rem); font-weight:700; line-height:1.15; letter-spacing:.035em; text-shadow:0 .15vw .6vw #000; }
h1 span { color:#f12b2c; font-size:1.5em; letter-spacing:.06em; }
.hero__line { display:block; color:#fff; font-size:1em; letter-spacing:.035em; }.hero__line--accent { font-size:1.5em; letter-spacing:.035em; }.hero__line--accent em { color:#f12b2c; font-style:normal; letter-spacing:.06em; }.hero__line--bottom { font-size:1.23em; letter-spacing:.02em; }
.hero__lead { margin:clamp(1rem,1.1vw,1.2rem) 0 0; color:#fafafa; font-family:"Yu Gothic",sans-serif; font-size:clamp(.7rem,1vw,1rem); font-weight:700; line-height:1.75; letter-spacing:.02em; }
.hero__actions { display:flex; gap:clamp(.6rem,.8vw,.9rem); margin-top:clamp(1.1rem,6.9vw,6.9rem); }
.cta { display:flex; align-items:center; gap:.65vw; min-height:clamp(2.6rem,5.55vw,5.55rem); padding:0 clamp(.65rem,1.05vw,1.1rem); color:#fff; border:1px solid rgba(255,255,255,.88); border-radius:.35vw; font-family:"Yu Gothic",sans-serif; font-size:clamp(.72rem,1vw,1rem); font-weight:700; letter-spacing:.03em; text-decoration:none; box-shadow:0 .35vw 1vw rgba(0,0,0,.45); }
.cta--primary { min-width:clamp(12.2rem,24.4vw,24.4rem); background:linear-gradient(135deg,#ff3a37,#b40000 68%,#790000); }
.cta--secondary { min-width:clamp(10.2rem,16.2vw,16.2rem); background:rgba(2,2,2,.8); }
.cta > img { width:clamp(1.15rem,1.55vw,1.55rem); height:clamp(1.15rem,1.55vw,1.55rem); object-fit:cover; mix-blend-mode:screen; }
.cta__arrow { margin-left:auto; }
.hero__note { margin:.65vw 0 0; color:#d3d3d3; font-family:"Yu Gothic",sans-serif; font-size:clamp(.56rem,.68vw,.7rem); }
.hero__features { position:absolute; z-index:2; bottom:clamp(.85rem,1.25vw,1.25rem); left:50%; display:grid; grid-template-columns:repeat(4,1fr); width:min(84vw,84rem); min-height:clamp(3.25rem,5.25vw,5.4rem); margin:0; padding:0; overflow:hidden; transform:translateX(-50%); border:1px solid rgba(255,255,255,.2); border-radius:.65vw; background:linear-gradient(180deg,rgba(35,35,35,.83),rgba(5,5,5,.9)); box-shadow:0 .5vw 1.7vw #000; list-style:none; }
.hero__features li { display:flex; align-items:center; justify-content:center; gap:.65vw; min-width:0; padding:.55vw 1vw; border-right:1px solid rgba(255,255,255,.27); font-family:"Yu Gothic",sans-serif; font-size:clamp(.66rem,.86vw,.88rem); font-weight:700; line-height:1.25; white-space:nowrap; }
.hero__features li:last-child { border:0; }.hero__features img { width:clamp(1.9rem,2.75vw,2.75rem); height:clamp(1.9rem,2.75vw,2.75rem); object-fit:cover; mix-blend-mode:screen; }.hero__features b { font-family:Georgia,serif; font-size:1.5em; }.hero__features small { display:block; color:#d7d7d7; font-size:.84em; }
a:focus-visible { outline:.2vw solid #fff; outline-offset:.25vw; }
@media (max-width: 700px) { .hero { height:154vw; min-height:0; }.hero__visual { object-position:62% center; opacity:.9; }.hero__shade { background:linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.55)),linear-gradient(0deg,rgba(0,0,0,.94),transparent 46%); }.hero__content { width:89vw; padding:7vw 0 39vw; margin:0 auto; } h1 { font-size:8.7vw; line-height:1.28; }.hero__lead { font-size:3vw; }.hero__actions { flex-direction:column; align-items:stretch; }.cta { width:100%; min-height:12vw; font-size:3.7vw; }.hero__features { grid-template-columns:repeat(2,1fr); width:92vw; bottom:3vw; border-radius:1vw; }.hero__features li { justify-content:flex-start; padding:1.7vw 2vw; font-size:2.8vw; }.hero__features li:nth-child(2) { border-right:0; }.hero__features li:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.22); } }
@media (max-width:700px) { .hero__actions { margin-top:4vw; }.hero__note { display:none; }.cta--primary,.cta--secondary { min-width:0; }.hero__features li { min-height:17vw; font-size:2.55vw; line-height:1.2; white-space:normal; }.hud--map,.hud--alert { display:none; }.hud--trace { top:73vw; left:51vw; width:31vw; opacity:.55; }.hud--risk { top:94vw; left:58vw; width:25vw; opacity:.55; }.process__steps li { min-height:46vw; padding:5vw 5vw 16vw 18vw; }.ranking-card { min-height:96vw; padding-bottom:23vw; }.ranking-card li { line-height:1.45; }.final-cta>img { opacity:.42; }.final-cta>div { padding-bottom:4vw; } }
@media (max-width:700px) { .hero { height:177.68vw; }.hero__shade, .hero__hud, .hero__content, .hero__features { display:none; } }

/* Company / privacy / contact pages */
.subpage-body { min-height:100vh; background:#060708; color:#f5f5f5; font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif; }.subpage-hero { position:relative; overflow:hidden; padding:4.4vw 6vw 3.5vw; border-bottom:1px solid rgba(225,14,19,.65); background:radial-gradient(circle at 78% 30%,rgba(201,15,18,.42),transparent 26%),linear-gradient(120deg,#050505,#111316); }.subpage-hero::after { content:""; position:absolute; inset:0; opacity:.42; background:repeating-linear-gradient(90deg,transparent 0 5vw,rgba(225,14,19,.14) 5.05vw 5.12vw); pointer-events:none; }.subpage-brand,.subpage-hero h1,.subpage-hero p { position:relative; z-index:1; }.subpage-brand { color:#f4cf79; font-size:1vw; font-weight:700; text-decoration:none; }.subpage-hero h1 { margin:1.25vw 0 .25vw; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(2rem,3.1vw,3.5rem); letter-spacing:.08em; }.subpage-hero p { margin:0; color:#e61b20; font-family:Georgia,serif; font-size:.9vw; letter-spacing:.2em; }.subpage-main { width:90.97vw; max-width:112rem; margin:0 auto; padding:4vw 0 5vw; }.subpage-card { padding:2.5vw 3vw; border:1px solid rgba(255,255,255,.25); border-top:.22vw solid #df1419; background:linear-gradient(145deg,rgba(29,32,34,.96),rgba(6,7,8,.98)); box-shadow:0 1vw 2.5vw rgba(0,0,0,.35); }.subpage-card h2 { margin:0 0 1.4vw; color:#fff; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(1.4rem,2vw,2.1rem); }.subpage-lead { margin:0 0 2vw; color:#ddd; line-height:1.9; }.company-table { display:grid; grid-template-columns:18vw 1fr; margin:0; border-top:1px solid rgba(255,255,255,.2); }.company-table dt,.company-table dd { margin:0; padding:1vw 1.2vw; border-bottom:1px solid rgba(255,255,255,.16); }.company-table dt { color:#f2d38b; background:rgba(255,255,255,.045); font-weight:700; }.company-table dd { color:#f5f5f5; }.policy-content h2 { margin:2.2vw 0 .7vw; color:#f3d58a; font-size:1.25vw; }.policy-content p { color:#ddd; line-height:2; }.policy-content a { color:#ff5c5f; }.policy-date { margin-top:3vw!important; text-align:right; }.contact-form { display:grid; gap:1.4vw; }.contact-form label { display:grid; gap:.55vw; color:#f5f5f5; font-weight:700; }.contact-form label span { width:max-content; padding:.13vw .45vw; color:#fff; background:#c30b10; font-size:.68em; }.contact-form input,.contact-form select,.contact-form textarea { width:100%; box-sizing:border-box; padding:.85vw 1vw; color:#fff; border:1px solid rgba(255,255,255,.32); background:#090a0b; font:inherit; }.contact-form textarea { resize:vertical; }.form-check { display:flex!important; align-items:center; gap:.6vw; font-size:.9em; }.form-check input { width:auto; }.form-check a { color:#f1ca6d; }.contact-submit { width:100%; padding:1.1vw; color:#fff; border:0; background:linear-gradient(135deg,#ef302f,#a80000); box-shadow:0 .45vw 1vw rgba(150,0,0,.35); font:700 1.05vw "Yu Gothic",sans-serif; cursor:pointer; }.form-message { min-height:1.4em; margin:0; color:#f4d98f; line-height:1.7; }.subpage-footer { display:flex; justify-content:center; flex-wrap:wrap; gap:1.8vw; padding:2vw 4vw; border-top:1px solid rgba(255,255,255,.14); background:#030303; }.subpage-footer a { color:#ddd; font-size:.82vw; text-decoration:none; }.subpage-footer a:hover { color:#f2cc73; }
@media (max-width:700px) { .subpage-hero { padding:9vw 6vw 8vw; }.subpage-brand { font-size:3vw; }.subpage-hero h1 { margin-top:4vw; font-size:8vw; }.subpage-hero p { font-size:2.6vw; }.subpage-main { width:92vw; padding:7vw 0 10vw; }.subpage-card { padding:6vw 5vw; border-top-width:1vw; }.subpage-card h2 { margin-bottom:4vw; font-size:6vw; }.subpage-lead { margin-bottom:6vw; font-size:3.5vw; }.company-table { grid-template-columns:1fr; }.company-table dt,.company-table dd { padding:3vw; font-size:3.5vw; }.company-table dd { padding-top:0; }.policy-content h2 { margin:7vw 0 2vw; font-size:4.3vw; }.policy-content p { font-size:3.5vw; line-height:1.9; }.contact-form { gap:5vw; }.contact-form label { gap:2vw; font-size:3.6vw; }.contact-form label span { padding:.5vw 1.3vw; }.contact-form input,.contact-form select,.contact-form textarea { padding:3vw; font-size:4vw; }.form-check { align-items:flex-start; gap:2vw; font-size:3.3vw!important; }.contact-submit { padding:4vw; font-size:4vw; }.subpage-footer { gap:5vw; padding:6vw 4vw; }.subpage-footer a { font-size:3.2vw; } }
.thanks-main { display:grid; min-height:100vh; place-items:center; padding:4vw; background:radial-gradient(circle at 80% 20%,rgba(205,15,19,.35),transparent 30%),#050505; }.thanks-card { width:min(90.97vw,48rem); text-align:center; }.thanks-card h1 { margin:1vw 0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:2.2vw; }.thanks-card p { color:#ddd; }.thanks-mark { color:#f3cf7d!important; font-weight:700; letter-spacing:.16em; }.thanks-link { display:inline-block; width:auto; margin-top:1.5vw; text-decoration:none; }@media (max-width:700px) { .thanks-main { padding:6vw; }.thanks-card h1 { font-size:6vw; }.thanks-link { width:100%; margin-top:5vw; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior:auto!important; } }

.section { padding:clamp(2.6rem,4vw,4.5rem) 4vw; color:#111; background:#fff; }.section h2 { margin:0; text-align:center; font-size:clamp(1.45rem,2.3vw,2.35rem); letter-spacing:.08em; }.section h2 span,.ranking h2 span { color:#d7191c; }.proof-band { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:1vw; padding:1.35vw 10vw; color:#151515; background:linear-gradient(120deg,#fff,#f1f1f1,#fff); text-align:center; }.proof-band article { border-right:1px solid #d5bd7d; }.proof-band article:last-of-type { border:0; }

.proof-band p { margin:0; font-family:"Yu Gothic",sans-serif; font-size:clamp(.7rem,.95vw,.95rem); }

.metrics p {
	margin: 0;
	font-family: "Yu Gothic",sans-serif;
	font-size: 24px;
	font-weight: bold;
}

.proof-band strong, .metrics strong {
	display: block;
	font-size: clamp(2rem,3.3vw,3.5rem);
	font-weight: 500;
	line-height: 1.15;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
}

.proof-band strong small,.metrics strong small { font-size:.43em; }.proof-band__note { position:absolute; right:4vw; bottom:.45vw; font-size:.55rem; }.concerns__grid { display:grid; grid-template-columns:1.15fr .55fr 1.2fr; max-width:92vw; margin:2.3vw auto 0; align-items:center; }.concerns__list { margin:0; padding:0 1vw; border:1px solid #ddd; border-radius:.45vw; list-style:none; font-family:"Yu Gothic",sans-serif; }

.concerns__list li { padding:1vw 0 1vw 2vw; border-bottom:1px solid #e8e8e8; font-size:20px; font-weight:700; }

.concerns__list li:last-child { border-bottom:0; }.concerns__portrait { align-self:end; margin:0 -4vw 0 -3vw; z-index:1; }.concerns__portrait img { display:block; width:100%; max-height:27vw; object-fit:contain; object-position:bottom; }.reasons { overflow:hidden; border:1px solid #df1919; border-radius:.45vw; font-family:"Yu Gothic",sans-serif; }

.reasons h3 { margin:0; padding:.9vw; color:#fff; background:linear-gradient(90deg,#b40000,#ed1d24); text-align:center; font-size:22px; }

.reasons ol { margin:0; padding:.4vw 1.2vw; list-style:none; }

.reasons li { padding:.75vw 0 .75vw 2.7vw; border-bottom:1px solid #edd9d9; position:relative; font-size:20px; }

.reasons li:last-child { border:0; }.reasons li::before { content:counter(list-item); counter-increment:list-item; position:absolute; left:.1vw; color:#cf1116; font-weight:800; }.reasons b,.reasons span { display:block; }.process--dark { color:white; }.process h2 small { font-size:.4em; font-weight:400; }.process__steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1.4vw; max-width:94vw; margin:2.3vw auto 0; padding:0; list-style:none; }.process__steps li { min-height:12vw; padding:1.2vw; border:1px solid #eb2528; border-radius:.5vw; background:linear-gradient(130deg,rgba(10,10,10,.85),rgba(45,10,10,.65)); }

.process__steps b {
	color: #f13235;
	font-family: Georgia,serif;
	font-size: clamp(1.4rem,2.1vw,2.2rem);
	margin-right: 1em;
}

.process__steps h3 { margin:.4vw 0; font-size:22px; }

.process__steps p {
	margin: 0;
	color: #fff;
	font-family: "Yu Gothic",sans-serif;
	font-size: 18px;
	line-height: 1.6;
	margin-top: 15px;
	font-weight: 500;
}

.ranking { padding-bottom:2vw; }

.ranking h2 {
	font-size: 35px;
}

.ranking__cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1vw; max-width:94vw; margin:1.5vw auto 0; }.ranking-card { padding:1.25vw; color:#fff; border:2px solid #a1a1a1; border-radius:.7vw; background:linear-gradient(145deg,#282c2c,#0a0c0d); box-shadow:0 .25vw .7vw #aaa; font-family:"Yu Gothic",sans-serif; }.ranking-card--best { border-color:#d6a421; }.rank { margin:0; color:#e9c357; font-size:clamp(.75rem,1vw,1rem); font-weight:bold; }.ranking-card h3 { margin:.25vw 0; font-family:"Yu Mincho",serif; font-size:clamp(1.25rem,1.8vw,1.9rem); }.ranking-card strong { color:#ffcf2d; font-size:1.8em; }.ranking-card ul { margin:1vw 0; padding:0; border-top:1px solid #555; list-style:none; }.ranking-card li { padding:.45vw 0; border-bottom:1px solid #444; font-size:clamp(.65rem,.82vw,.86rem); }.ranking-card a { display:block; padding:.8vw; color:#fff; border:1px solid #ddd; border-radius:.35vw; text-align:center; text-decoration:none; font-weight:bold; }.ranking-card--best a { background:linear-gradient(#ed2b2f,#b50000); border:0; }.ranking__note { margin:1vw 0 0; text-align:right; font-size:.6rem; }.journey { padding-top:1vw; }.journey ol { display:grid; grid-template-columns:repeat(5,1fr); max-width:94vw; margin:1.6vw auto 0; padding:1.3vw; border:1px solid #ddd; border-radius:.8vw; list-style:none; text-align:center; }

.journey li {
	padding: 0 1vw;
	border-right: 1px solid #ddd;
	color: #a90c0c;
	font-family: "Yu Gothic",sans-serif;
	font-weight: bold;
	font-size: 35px;
}

.journey li:last-child { border:0; }

.journey small {
	display: block;
	margin-top: .6vw;
	color: #333;
	font-size: 16px;
	font-weight: 400;
}


.service-strip p {
	margin: .8vw 0;
	border-right: 2px solid rgb(255, 255, 255);
	font-family: "Yu Gothic",sans-serif;
	font-weight: bold;
	padding-right: 3em;
}

.service-strip p:last-child { border:0; }

.service-strip b { font-size:1.45em; }

.service-strip small { display:block; font-size:.72em; }

.metrics { padding:1.8vw 4vw; color:#fff; background:radial-gradient(circle at 75% 20%,#4a0808,transparent 30%),#0a0b0d; text-align:center; }.metrics h2 { margin:0 0 1.3vw; font-size:clamp(1.2rem,1.8vw,1.9rem); }.metrics>div { display:grid; grid-template-columns:repeat(4,1fr); gap:2vw; }

.metrics article {
	padding: 1vw;
	border: 1px solid #b41515;
	border-radius: .5vw;
	background: rgba(4, 4, 4, 0.86);
}

.metrics>small { display:block; margin-top:.5vw; text-align:right; font-size:.55rem; }.faq-cta { display:grid; grid-template-columns:.9fr 1.25fr; gap:1.5vw; align-items:stretch; }.faq h2 { margin-bottom:1vw; color:#d91518; text-align:left; font-size:clamp(1rem,1.5vw,1.6rem); }.faq details { border:1px solid #ddd; border-bottom:0; font-family:"Yu Gothic",sans-serif; }.faq details:last-child { border-bottom:1px solid #ddd; }.faq summary { padding:.8vw; cursor:pointer; font-size:clamp(.66rem,.82vw,.86rem); font-weight:bold; }

.faq details p {
	padding: .3vw .8vw;
	margin: 0;
	font-size: 20px;
	font-weight: bold;
	color: #fff;
	background-color: #f2302d;
}

.final-cta { position:relative; overflow:hidden; min-height:17vw; padding:1.6vw 2vw; color:#111; border:1px solid #bbb; border-radius:.5vw; }

.final-cta > img {
	position: absolute;
	inset: 0 0 0 auto;
	width: 75%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.final-cta>div { position:relative; z-index:1; max-width:58%; }.final-cta h2 { margin:0; text-align:left; font-size:clamp(1.1rem,1.7vw,1.8rem); }

.final-cta p {
	font-family: "Yu Gothic",sans-serif;
	font-size: 22px;
	color: #fff;
  font-weight: 500;
}

.final-cta .cta { display:inline-flex; width:fit-content; margin:.35vw .3vw 0 0; }.cta--line { background:linear-gradient(135deg,#16b448,#008a2e); }.closing { padding:1.5vw 4vw; color:#fff; background:linear-gradient(90deg,#140000,#090909,#140000); text-align:center; }.closing h2 { margin:0; font-size:clamp(1.25rem,1.9vw,2rem); }.closing p { margin:.45vw 0 1vw; font-family:"Yu Gothic",sans-serif; font-size:clamp(.65rem,.85vw,.9rem); }.closing .cta { display:inline-flex; margin:.2vw; }
@media (max-width:700px) { .proof-band { grid-template-columns:1fr; gap:1vw; padding:5vw 8vw 7vw; }.proof-band article { padding-bottom:2vw; border-right:0; border-bottom:1px solid #d5bd7d; }.proof-band article:last-of-type { border-bottom:0; }.proof-band__note { bottom:1vw; }.concerns__grid,.faq-cta { grid-template-columns:1fr; }.concerns__portrait { width:50vw; margin:-7vw auto -1vw; }.concerns__portrait img { max-height:72vw; }.reasons { margin-top:-3vw; }.process__steps,.ranking__cards { grid-template-columns:1fr; }.process__steps li { min-height:auto; padding:5vw; }.ranking-card { padding:5vw; }.journey ol { grid-template-columns:1fr; gap:3vw; padding:5vw; }.journey li { padding-bottom:3vw; border-right:0; border-bottom:1px solid #ddd; }.journey li:last-child { border:0; padding-bottom:0; }

.service-strip { grid-template-columns:1fr; margin:0 4vw 4vw; }.service-strip p { padding:2.5vw; margin:0; border-right:0; border-bottom:1px solid rgba(255,255,255,.5); }.service-strip p:last-child { border:0; }.metrics { padding:6vw 4vw; }.metrics>div { grid-template-columns:1fr 1fr; gap:3vw; }.metrics article { padding:4vw 1vw; }.faq-cta { padding:8vw 4vw; }.faq h2 { text-align:center; }.faq summary { padding:3vw; }.faq details p { padding:0 3vw 3vw; }.final-cta { min-height:84vw; padding:6vw; }.final-cta>img { width:100%; height:52%; top:auto; opacity:.8; }.final-cta>div { max-width:100%; }.final-cta .cta { width:100%; margin-top:2vw; }

.closing {
	padding: 7vw 4vw 30vw;
}

.closing .cta { width:100%; margin:1vw 0; justify-content:center; } }
@media (max-width:700px) { h1 { font-size:7.5vw; word-break:keep-all; overflow-wrap:normal; } }

.company-profiles { background:linear-gradient(180deg,#f8f8f8,#fff); }.company-profiles>h2 { margin-bottom:2vw; }.company-profile { max-width:88vw; margin:1.3vw auto; padding:1.7vw 2vw; border:1px solid #d7d7d7; border-left:.45vw solid #bb1014; border-radius:.35vw; background:#fff; font-family:"Yu Gothic",sans-serif; box-shadow:0 .2vw .8vw rgba(0,0,0,.05); }.company-profile__eyebrow { margin:0; color:#b20e12; font-size:clamp(.65rem,.85vw,.9rem); font-weight:700; letter-spacing:.08em; }.company-profile h3 { margin:.4vw 0 .8vw; font-family:"Yu Mincho",serif; font-size:clamp(1.3rem,2vw,2.1rem); }.company-profile__lead { margin:.5vw 0; font-size:clamp(.8rem,1vw,1.05rem); font-weight:700; line-height:1.7; }.company-profile>p:not(.company-profile__eyebrow):not(.company-profile__lead) { margin:.7vw 0; font-size:clamp(.68rem,.86vw,.9rem); line-height:1.9; }.company-profile ul { display:grid; grid-template-columns:repeat(2,1fr); gap:.45vw 2vw; margin:1vw 0; padding:1vw 0; border-top:1px solid #ddd; border-bottom:1px solid #ddd; list-style:none; font-size:clamp(.66rem,.82vw,.86rem); line-height:1.7; }.company-profile li { padding-left:1vw; position:relative; }.company-profile li::before { content:""; position:absolute; left:0; top:.65em; width:.42vw; height:.42vw; border-radius:50%; background:#c7191e; }.company-profile a { display:inline-block; padding:.7vw 1.25vw; color:#fff; background:linear-gradient(135deg,#e92b2f,#a80000); border-radius:.25vw; font-weight:700; text-decoration:none; font-size:clamp(.7rem,.9vw,.92rem); }.company-profiles__note { max-width:88vw; margin:1.2vw auto 0; color:#555; font-family:"Yu Gothic",sans-serif; font-size:clamp(.58rem,.7vw,.72rem); line-height:1.7; }@media (max-width:700px) { .company-profiles { padding:8vw 4vw; }.company-profiles>h2 { margin-bottom:5vw; }.company-profile { max-width:100%; margin:4vw 0; padding:5vw; border-left-width:1vw; border-radius:1vw; }.company-profile h3 { margin:1.5vw 0 3vw; }.company-profile__lead { margin:2vw 0; }.company-profile>p:not(.company-profile__eyebrow):not(.company-profile__lead) { margin:3vw 0; }.company-profile ul { grid-template-columns:1fr; gap:2vw; margin:4vw 0; padding:3vw 0; }.company-profile li { padding-left:3vw; }.company-profile li::before { width:1.4vw; height:1.4vw; }.company-profile a { display:block; padding:3vw; border-radius:.7vw; text-align:center; }.company-profiles__note { max-width:100%; margin:4vw 0 0; } }

.ranking-card__tagline { min-height:2.5em; color:#f1cb60; font-size:clamp(.6rem,.76vw,.8rem); font-weight:700; line-height:1.55; }.ranking-card__lead { min-height:5em; color:#f5f5f5; font-size:clamp(.64rem,.78vw,.82rem); font-weight:400; line-height:1.75; }.ranking-card ul { min-height:9.1em; }.ranking-card li { padding-left:1.05vw; position:relative; }.ranking-card li::before { content:""; position:absolute; left:0; top:1em; width:.35vw; height:.35vw; border-radius:50%; background:#f4c52f; }@media (max-width:700px) { .ranking-card__tagline,.ranking-card__lead,.ranking-card ul { min-height:0; }.ranking-card__lead { margin:3vw 0; }.ranking-card li { padding-left:3vw; }.ranking-card li::before { width:1.2vw; height:1.2vw; } }

.proof-band { min-height:9.8vw; padding:1.65vw 10vw; }

.proof-band article {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.laurel { width:6.5vw; height:7vw; object-fit:contain; }

.laurel--right { transform:scaleX(-1); }

.section h2 span {
	font-size: 1.5em;
}

@media (max-width:700px) { .proof-band { min-height:auto; }.laurel { width:5vw; height:15vw; top:0; }}

.concerns__list li { display:flex; align-items:center; gap:.7vw; padding:1vw; }

.concerns__list li img { width:40px; height:auto; object-fit:contain; }

@media (max-width:700px) { .concerns__list li { gap:2vw; padding:3vw; }.concerns__list li img { width:4vw; height:4vw; } }

.reasons li { display:flex; align-items:center; gap:.7vw; padding:.55vw .6vw; }.reasons li::before { content:none; }.reasons li>img { flex:0 0 auto; width:2.45vw; height:2.45vw; object-fit:contain; }.reasons li>div { min-width:0; }@media (max-width:700px) { .reasons li { gap:2vw; padding:2vw; }.reasons li>img { width:8vw; height:8vw; } }

.process--dark { padding:1.1vw 4vw 1.2vw; }.process__steps li { position:relative; min-height:9.3vw; }.process__steps li>img { position:absolute; left:1vw; bottom:.85vw; width:2.5vw; height:2.5vw; object-fit:contain; }@media (max-width:700px) { .process--dark { padding:8vw 4vw; }.process__steps li { min-height:34vw; padding:5vw 5vw 5vw 18vw; }.process__steps li>img { left:5vw; bottom:5vw; width:9vw; height:9vw; } }

.ranking { padding:1vw 4.4vw 1.3vw; }.ranking__cards { gap:.8vw; margin-top:.6vw; }

.ranking-card {
	position: relative;
	overflow: hidden;
}

.ranking-card::before {
	content: "";
	position: absolute;
	top: 1vw;
	right: 2vw;
	width: 4.8vw;
	height: 4.8vw;
	background: center/contain no-repeat;
}

.ranking-card--best::before { background-image:url("assets/medal-gold.png"); }.ranking-card:nth-child(2)::before { background-image:url("assets/medal-silver.png"); }.ranking-card:nth-child(3)::before { background-image:url("assets/medal-bronze.png"); }.ranking-card .rank { display:none; }.ranking-card h3 { min-height:2.4vw; }.ranking-card__tagline { min-height:2.2vw; }.ranking-card__lead { display:none; }

.ranking-card ul { min-height:11.2vw; margin:1.6vw 0; }

.ranking-card li::before { background:#fff; }@media (max-width:700px) { .ranking { padding:7vw 4vw; }.ranking-card { height:auto; min-height:76vw; padding:5vw 5vw 17vw 20vw; overflow:visible; }.ranking-card::before { top:5vw; left:5vw; width:12vw; height:12vw; }.ranking-card h3 { min-height:0; }.ranking-card__tagline { min-height:0; }.ranking-card ul { min-height:0; }.ranking-card a { right:5vw; bottom:5vw; left:5vw; } }

.ranking-card h3::after { content:""; display:block; width:7.5vw; height:1.5vw; margin-top:.25vw; background:url("assets/stars-gold.png") left center/contain no-repeat; }@media (max-width:700px) { .ranking-card h3::after { width:25vw; height:5vw; margin-top:1vw; } }

.ranking-card li::before { top:.42vw; width:.72vw; height:.72vw; border-radius:0; background:center/contain no-repeat url("assets/check-white.png"); }@media (max-width:700px) { .ranking-card li::before { top:.6vw; width:2.5vw; height:2.5vw; } }

.service-strip p {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1vw;
	font-size: 30px;
}

.service-strip p>img { width:5vw; height:5vw; object-fit:contain; }

.service-strip p>span { text-align:left; }@media (max-width:700px) { .service-strip p { gap:3vw; }.service-strip p>img { width:9vw; height:9vw; } }

.faq summary { position:relative; padding-right:3vw; list-style:none; }.faq summary::-webkit-details-marker { display:none; }.faq summary::after { content:""; position:absolute; top:50%; right:.9vw; width:1.1vw; height:1.1vw; transform:translateY(-50%); background:center/contain no-repeat url("assets/icon-faq-plus.png"); }.faq details[open] summary::after { transform:translateY(-50%) rotate(45deg); }@media (max-width:700px) { .faq summary::after { right:3vw; width:3.5vw; height:3.5vw; } }

.metrics { background:#07090b url("assets/metrics-bg.png") center/cover no-repeat; }

.journey li { position:relative; padding-top:3.5vw; }.journey li::before { content:""; position:absolute; top:.2vw; left:50%; width:2.7vw; height:2.7vw; transform:translateX(-50%); background:center/contain no-repeat; }.journey li:nth-child(1)::before { background-image:url("assets/journey-consult.png"); }.journey li:nth-child(2)::before { background-image:url("assets/process-consult.png"); }.journey li:nth-child(3)::before { background-image:url("assets/process-evidence.png"); }.journey li:nth-child(4)::before { background-image:url("assets/process-legal.png"); }.journey li:nth-child(5)::before { background-image:url("assets/process-resolution.png"); }@media (max-width:700px) { .journey li { padding-top:11vw; }.journey li::before { top:2vw; width:8vw; height:8vw; } }

.journey li:not(:last-child)::after {
	content: "➡";
	position: absolute;
	top: 50%;
	right: -5%;
	transform: translateY(-50%);
	font-size: 1.5em;
}

.service-strip {
	background-color: #fff;
	padding: 4em 6em;
}

.service-strip div {
	background: radial-gradient(circle at 20% 40%,#551010,transparent 30%),#0c0b0b;
	padding: 2em;
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-radius: 5px;
}

@media (max-width:700px) { .journey li:not(:last-child)::after { top:auto; right:50%; bottom:-2.1vw; width:3vw; height:3vw; transform:translateX(50%) rotate(90deg); } }

@media (min-width:701px) { .concerns { min-height:33.6vw; padding:2vw 4.4vw 1vw; }.concerns__grid { margin-top:1vw; }.process--dark { min-height:20vw; }.ranking { min-height:33.3vw; }.journey { min-height:13.9vw; padding:1vw 3.8vw; }

.metrics {
	min-height: 18.4vw;
	padding: 4.3vw 4vw;
}

.faq-cta { min-height:20.4vw; padding:1.3vw 3.6vw; }.closing { min-height:8.7vw; } }

@media (min-width:701px) {
  .hero { height:52.19vw; }
  .hero__shade, .hero__hud, .hero__content, .hero__features { display:none; }
  .section { padding-right:4.4vw; padding-left:4.4vw; }

.process--dark {
	padding-right: 4.4vw;
	padding-left: 4.4vw;
	padding-top: 4em;
}

  .ranking { padding-right:4.4vw; padding-left:4.4vw; }
  .journey { padding-right:4.4vw; padding-left:4.4vw; }
  .process__steps, .ranking__cards, .journey ol { max-width:90.97vw; }
  .metrics>div { max-width:90.97vw; margin-right:auto; margin-left:auto; }
  .faq-cta { max-width:100vw; }
  .final-cta { min-width:0; }
  .proof-band { padding-right:4.4vw; padding-left:4.4vw; }
  .proof-band article { min-width:0; }
  .concerns__grid, .ranking__cards, .journey ol, .metrics>div { width:90.97vw; }

#process div {
	background: radial-gradient(circle at 20% 40%,#551010,transparent 30%),#0c0b0b;
	padding: 4em;
	border-radius: 5px;
}

  .reasons, .concerns__list { min-width:0; }
  .closing { padding-right:4.4vw; padding-left:4.4vw; }
  .closing__copy { min-width:0; }
  .closing__actions { flex:0 0 auto; }
  .hero__eyebrow { margin-bottom:3vw; }
  .hero h1 { line-height:1.3; }
  .hero__actions { margin-top:2.8vw; }
  .concerns { height:33.6vw; min-height:0; overflow:hidden; }
  .process__steps { margin-top:1.35vw; }

.ranking {
	min-height: 0;
	padding: 5em 0;
}

  .ranking__note { display:none; }

.journey {
	min-height: 0;
	padding: 4.8vw 3.8vw 0.8vw;
	overflow: hidden;
}

.journey h2 {
	font-size: 2.3vw;
}

  .journey ol { margin:.8vw auto 0; padding:.85vw; }
  .journey li { padding-top:3.1vw; }
  .final-cta { min-height:17vw; padding:1vw 1.6vw; }
  .final-cta h2 { font-size:1.4vw; line-height:1.2; }
  .final-cta p { margin:.35vw 0; }
.final-cta .cta {
	min-height: 3.9vw;
	font-size: .82vw;
	min-width: clamp(12.2rem,24.4vw,24.4rem);
}
  .closing { height:8.9vw; min-height:0; display:grid; grid-template-columns:1fr auto; align-items:center; gap:2vw; padding:1vw 4vw; text-align:left; overflow:hidden; }
  .closing__copy h2 { font-size:1.65vw; }
  .closing__copy p { margin:.3vw 0 0; font-size:.75vw; }
  .closing__actions { display:flex; gap:.8vw; }
  .closing .cta { min-height:4.1vw; margin:0; font-size:.85vw; }
  .closing .cta--primary { min-width:18vw; }
  .closing .cta--line { min-width:13vw; }

.faq-cta {
	grid-template-columns: .82fr 1.18fr;
	gap: 1vw;
	margin: 0;
	padding: 5em 4.4vw;
}

.faq h2 { margin-bottom:.55vw; font-size:2.5vw; }
  .faq summary { padding:.52vw .8vw; font-size:20px; }
  .final-cta>div { max-width:54%; }
  .concerns__grid { max-width:90.97vw; grid-template-columns:1.18fr .48fr .92fr; }
  .concerns__portrait { margin-right:-2.15vw; margin-left:-2.45vw; }
  .concerns__list li { padding-top:.82vw; padding-bottom:.82vw; }
  .reasons h3 { padding:.65vw; }
  .reasons li { padding-top:.42vw; padding-bottom:.42vw; }
}
.final-cta {
	background-image: url(assets/security-shield.png);
}
.final-cta h2 {
	color: #fff;
}

.closing__actions a {
	color: #fff;
}

.ranking-card img {
	width: 100%;
}


.sp {
  display: none;
}

@media (max-width:670px) {
.proof-band p {
	font-size: 25px;
}
.laurel {
	width: 15vw;
	height: 30vw;
}
.proof-band {
	padding: 1.65vw 0vw;
}
.sp {
  display: block;
}
.section h2 {
	font-size: 30px;
}
.reasons {
	z-index: 2;
}
.section h2 {
	color: #000;
}
.process h2 small {
	display: block;
}
.reasons li {
	font-size: 16px;
}
.section h2 {
	font-size: 24px;
}
.ranking-card {
	padding: 1em;
}
.ranking-card::before {
	top: 5vw;
	left: revert;
	width: 16vw;
	height: 15vw;
}
.ranking-card h3 {
	font-size: 25px;
}
.ranking-card h3::after {
	width: 30vw;
	height: 10vw;
	margin-top: 1vw;
}
.ranking-card__tagline {
	min-height: 2.5em;
	color: #f1cb60;
	font-size: 3.5vw;
	font-weight: 700;
	line-height: 1.55;
}
.ranking-card li {
	padding: 10px 0 15px 10px;
	border-bottom: 1px solid #444;
	font-size: 16px;
	margin: 10px 0;
}
.ranking-card a {
	display: block;
	padding: 4.8vw;
	color: #fff;
	border: 1px solid #ddd;
	border-radius: .35vw;
	text-align: center;
	text-decoration: none;
	font-weight: bold;
	font-size: 20px;
}
.journey li:not(:last-child)::after {
	top: auto;
	right: 38%;
	bottom: -2.1vw;
	width: 3vw;
	height: 3vw;
	transform: translateX(50%) rotate(90deg);
}
.service-strip div {
	display: block;
	padding: 0em;
}
.service-strip {
	margin: 0 0vw 0vw;
}
.service-strip p {
	font-size: 21px;
}
.service-strip {
	background-color: #fff;
	padding: 1em 1em 2em;
}
.faq summary {
	font-size: 15px;
}
.section h2 {
	color: #fff;
}
.closing h2 {
	font-size: 5vw;
}
.closing__copy {
	margin-bottom: 2em;
}
}





/* styles2.css などへ追加 */
.floating-cta {
  position: fixed;
  z-index: 1000;
  right: 2vw;
  bottom: 2vw;
  display: flex;
  gap: .7vw;
  padding: .7vw;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: .5vw;
  background: rgba(5,5,5,.92);
  box-shadow: 0 .5vw 1.5vw rgba(0,0,0,.45);
  opacity: 0;
  transform: translateY(1vw);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}

.floating-cta.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.floating-cta a {
  padding: .85vw 1.4vw;
  color: #fff;
  border-radius: .3vw;
  font: 700 .95vw "Yu Gothic", sans-serif;
  text-decoration: none;
}

.floating-cta__primary {
  background: linear-gradient(135deg, #ef302f, #a80000);
}

.floating-cta__line {
  background: linear-gradient(135deg, #18b74e, #008c30);
}

@media (max-width: 700px) {
  .floating-cta {
    right: 3vw;
    bottom: 3vw;
    left: 3vw;
    gap: 2vw;
    padding: 2vw;
  }

.floating-cta a {
	flex: 1;
	padding: 3.2vw 1vw;
	font-size: 4.3vw;
	text-align: center;
}
}