 :root{
	 --black:#010409;
	 --sapphire:#0F52BA;
	 --whitegold:#F5F3E7;
	 --graphite:#2F343B;
	 --ink:#EAF2FF;
	 --muted:#AAB9D4;
	 --line:rgba(245,243,231,.14);
	 --card:rgba(255,255,255,.075);
	 --card2:rgba(15,82,186,.14);
	 --radius:24px;
	 --shadow:0 26px 80px rgba(0,0,0,.38);
	 --gradient:linear-gradient(135deg,#010409 0%,#071125 23%,#0F52BA 52%,#F5F3E7 78%,#2F343B 100%);
	 --gradient-dark:radial-gradient(circle at 80% 10%, rgba(15,82,186,.54), transparent 33%),radial-gradient(circle at 10% 80%, rgba(245,243,231,.13), transparent 30%),linear-gradient(135deg,#010409 0%,#111E39 48%,#361050 74%,#010409 100%);
}
 *{
	box-sizing:border-box
}
 html{
	scroll-behavior:smooth
}
 body{
	margin:0;
	font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
	background:var(--black);
	color:var(--ink);
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility
}
 img{
	max-width:100%;
	display:block
}
 a{
	color:inherit;
	text-decoration:none
}
 p{
	margin:0 0 1rem
}
.lead{
	font-size:1.12rem;
	color:#D5E1F4;
	max-width:780px
}
.small{
	font-size:.92rem;
	color:var(--muted)
}
 .container{
	width:min(1180px,calc(100% - 40px));
	margin-inline:auto
}
.narrow{
	width:min(900px,calc(100% - 40px));
	margin-inline:auto
}
.section{
	padding:96px 0;
	position:relative;
	overflow:hidden
}
.section-tight{
	padding:64px 0
}
.surface{
	background:var(--gradient-dark)
}
.surface-soft{
	background:linear-gradient(180deg,rgba(15,82,186,.18),rgba(1,4,9,.25)),radial-gradient(circle at 20% 10%,rgba(245,243,231,.12),transparent 28%)
}
 .header{
	position:sticky;
	top:0;
	z-index:1000;
	background:rgba(1,4,9,.78);
	backdrop-filter:blur(18px);
	border-bottom:1px solid var(--line)
}
 .header__inner{
	height:82px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:28px
}
.logo{
	display:flex;
	align-items:center;
	gap:12px
}
.logo img{
	width:228px;
	height:auto
}
.nav{
	display:flex;
	gap:28px;
	align-items:center;
	font-size:.94rem;
	color:#D9E6FF
}
.nav a{
	opacity:.86;
	transition:.2s
}
.nav a:hover{
	opacity:1;
	color:var(--whitegold)
}
.nav .legal-link{
	display:none
}
.burger{
	display:none;
	appearance:none;
	border:1px solid var(--line);
	background:rgba(255,255,255,.08);
	border-radius:14px;
	width:48px;
	height:46px;
	align-items:center;
	justify-content:center;
	cursor:pointer
}
.burger span{
	display:block;
	width:22px;
	height:2px;
	background:var(--whitegold);
	position:relative
}
.burger span:before,.burger span:after{
	content:"";
	position:absolute;
	left:0;
	width:22px;
	height:2px;
	background:var(--whitegold);
	transition:.2s
}
.burger span:before{
	top:-7px
}
.burger span:after{
	top:7px
}
.burger[aria-expanded="true"] span{
	background:transparent
}
.burger[aria-expanded="true"] span:before{
	top:0;
	transform:rotate(45deg)
}
.burger[aria-expanded="true"] span:after{
	top:0;
	transform:rotate(-45deg)
}
 .btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:.6rem;
	border:1px solid transparent;
	border-radius:16px;
	padding:14px 20px;
	font-weight:800;
	letter-spacing:.01em;
	min-height:48px;
	transition:transform .2s,box-shadow .2s,background .2s,border-color .2s
}
.btn:hover{
	transform:translateY(-2px)
}
.btn-primary{
	background:linear-gradient(135deg,#0F52BA,#3E8DFF);
	color:white;
	box-shadow:0 18px 45px rgba(15,82,186,.35)
}
.btn-secondary{
	background:rgba(245,243,231,.08);
	border-color:rgba(245,243,231,.18);
	color:var(--whitegold)
}
.btn-ghost{
	border-color:rgba(15,82,186,.5);
	color:#CFE3FF;
	background:rgba(15,82,186,.1)
}
 .hero{
	padding:92px 0 76px;
	background:var(--gradient);
	position:relative;
	overflow:hidden
}
.hero:before{
	content:"";
	position:absolute;
	inset:0;
	background:radial-gradient(circle at 10% 15%,rgba(245,243,231,.18),transparent 26%),radial-gradient(circle at 88% 22%,rgba(1,4,9,.46),transparent 28%);
	pointer-events:none
}
.hero-grid{
	position:relative;
	z-index:1;
	display:grid;
	grid-template-columns:1fr .92fr;
	gap:60px;
	align-items:center
}
.eyebrow{
	display:inline-flex;
	align-items:center;
	gap:10px;
	border:1px solid rgba(245,243,231,.18);
	background:rgba(1,4,9,.28);
	padding:8px 12px;
	border-radius:999px;
	color:#F5F3E7;
	font-size:.86rem;
	font-weight:700;
	margin-bottom:22px
}
.eyebrow:before{
	content:"";
	width:8px;
	height:8px;
	border-radius:50%;
	background:#71B6FF;
	box-shadow:0 0 18px #71B6FF
}
.hero h1{
	font-size:clamp(2.7rem,6vw,3.8rem);
	line-height:.92;
	letter-spacing:-.07em;
	margin:0 0 26px;
	max-width:780px
}
.hero .lead{
	font-size:1.2rem;
	color:#EEF6FF;
	max-width:680px
}
.hero-actions{
	display:flex;
	flex-wrap:wrap;
	gap:14px;
	margin-top:28px
}
.trust-row{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:14px;
	margin-top:34px
}
.trust-pill{
	border:1px solid var(--line);
	background:rgba(1,4,9,.26);
	border-radius:18px;
	padding:15px 16px
}
.trust-pill strong{
	display:block;
	color:var(--whitegold);
	font-size:1.05rem
}
.trust-pill span{
	font-size:.86rem;
	color:#CBDAF2
}
.hero-card{
	position:relative
}
.hero-card img{
	border-radius:34px;
	box-shadow:var(--shadow);
	border:1px solid rgba(245,243,231,.15)
}
.floating-badge{
	position:absolute;
	right:-16px;
	top:-18px;
	background:linear-gradient(135deg,#010409,#0F52BA);
	border:1px solid rgba(245,243,231,.2);
	border-radius:50%;
	width:96px;
	height:96px;
	display:grid;
	place-items:center;
	box-shadow:0 18px 50px rgba(0,0,0,.35);
	animation:float 5s ease-in-out infinite
}
.floating-badge svg{
	width:42px;
	height:42px
}
.metric-badge{
	position:absolute;
	left:-20px;
	bottom:-22px;
	background:linear-gradient(135deg,#010409,#0F52BA);
	border-radius:22px;
	padding:16px 20px;
	border:1px solid rgba(245,243,231,.18);
	box-shadow:var(--shadow)
}
.metric-badge strong{
	font-size:1.55rem;
	color:#fff;
	display:block
}
.metric-badge span{
	font-size:.85rem;
	color:#D3E1F8
}
@keyframes float{
	0%,100%{
		transform:translateY(0)
	}
	50%{
		transform:translateY(12px)
	}
}
 .section-head{
	text-align:center;
	margin:0 auto 46px;
	max-width:820px
}
.section-head h2,.article h1{
	font-size:clamp(2rem,4vw,3.2rem);
	line-height:1.08;
	letter-spacing:-.045em;
	margin:0 0 15px
}
.section-head p{
	color:#C9D7EC;
	font-size:1.08rem
}
.grid-3{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:24px
}
.grid-2{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:42px;
	align-items:center
}
.card{
	background:linear-gradient(180deg,rgba(255,255,255,.092),rgba(255,255,255,.052));
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:28px;
	box-shadow:0 18px 55px rgba(0,0,0,.18);
	position:relative;
	overflow:hidden
}
.card:before{
	content:"";
	position:absolute;
	inset:auto -20% -45% auto;
	width:190px;
	height:190px;
	border-radius:50%;
	background:rgba(15,82,186,.18);
	filter:blur(10px)
}
.card h3{
	font-size:1.25rem;
	margin:12px 0 10px;
	color:#fff
}
.card p,.card li{
	color:#BDCCE3
}
.icon{
	width:52px;
	height:52px;
	border-radius:16px;
	background:linear-gradient(135deg,#0F52BA,#6CAEFF);
	display:grid;
	place-items:center;
	box-shadow:0 15px 35px rgba(15,82,186,.25);
	position:relative;
	z-index:1
}
.icon svg{
	width:26px;
	height:26px;
	stroke:#fff
}
.list-clean{
	list-style:none;
	padding:0;
	margin:18px 0 0
}
.list-clean li{
	display:flex;
	gap:10px;
	align-items:flex-start;
	margin:10px 0
}
.list-clean li:before{
	content:"";
	width:8px;
	height:8px;
	margin-top:9px;
	flex:0 0 8px;
	border-radius:50%;
	background:#5BABFF;
	box-shadow:0 0 14px rgba(91,171,255,.7)
}
 .split-copy h2{
	font-size:clamp(2rem,4vw,3.3rem);
	line-height:1.02;
	letter-spacing:-.045em;
	margin:0 0 18px
}
.check-list{
	list-style:none;
	padding:0;
	margin:28px 0 0
}
.check-list li{
	display:grid;
	grid-template-columns:36px 1fr;
	gap:14px;
	margin:20px 0;
	color:#D6E4F8
}
.check-list b{
	color:#fff;
	display:block
}
.check{
	width:36px;
	height:36px;
	border-radius:50%;
	background:#0F52BA;
	display:grid;
	place-items:center;
	box-shadow:0 12px 28px rgba(15,82,186,.35)
}
.check:after{
	content:"✓";
	font-weight:900;
	color:white
}
.image-frame{
	position:relative
}
.image-frame img{
	border-radius:30px;
	box-shadow:var(--shadow);
	border:1px solid rgba(245,243,231,.14)
}
 .result-layout{
	display:grid;
	grid-template-columns:1fr .9fr;
	gap:52px;
	align-items:center
}
.quote-stack{
	display:grid;
	gap:28px
}
.quote{
	border-left:4px solid #0F52BA;
	padding-left:24px
}
.quote h3{
	margin:0 0 8px;
	font-size:1.32rem
}
.quote p{
	color:#D7E4F7
}
.quote .tag{
	color:#7DB8FF;
	font-weight:800;
	font-size:.9rem
}
.stats{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:28px;
	text-align:center
}
.stat strong{
	display:block;
	font-size:clamp(2.1rem,4vw,4rem);
	line-height:1;
	color:#5BA9FF;
	text-shadow:0 0 28px rgba(15,82,186,.4)
}
.stat span{
	font-size:.95rem;
	color:#C4D1E7
}
.long-copy{
	columns:2;
	column-gap:64px;
	color:#CEDBED
}
.long-copy p{
	break-inside:avoid;
	margin-bottom:1.2rem
}
 .form-section{
	background:radial-gradient(circle at 13% 14%,rgba(245,243,231,.1),transparent 30%),linear-gradient(135deg,#3A105D 0%,#172B63 58%,#010409 100%)
}
.contact-grid{
	display:grid;
	grid-template-columns:.95fr 1.05fr;
	gap:48px;
	align-items:start
}
.form-card{
	background:rgba(245,243,231,.085);
	border:1px solid var(--line);
	border-radius:28px;
	padding:32px;
	box-shadow:var(--shadow)
}
.field{
	display:grid;
	gap:8px;
	margin-bottom:17px
}
.field label{
	font-size:.9rem;
	color:#F5F3E7;
	font-weight:800
}
.field input,.field select,.field textarea{
	width:100%;
	border:1px solid rgba(245,243,231,.17);
	background:rgba(1,4,9,.28);
	color:#fff;
	border-radius:13px;
	padding:14px 14px;
	font:inherit;
	outline:none
}
.field input:focus,.field select:focus,.field textarea:focus{
	border-color:#69AFFF;
	box-shadow:0 0 0 4px rgba(15,82,186,.25)
}
.field textarea{
	min-height:128px;
	resize:vertical
}
.form-note{
	font-size:.78rem;
	color:#B9C8DF;
	margin-top:12px
}
.contact-cards{
	display:grid;
	gap:18px
}
.contact-card{
	border:1px solid var(--line);
	background:rgba(1,4,9,.28);
	border-radius:24px;
	padding:26px
}
.contact-card h3{
	margin-top:0
}
.contact-line{
	display:flex;
	gap:12px;
	align-items:flex-start;
	margin:12px 0;
	color:#D1DEF2
}
.map-placeholder{
	border-radius:24px;
	overflow:hidden;
	border:1px solid var(--line);
	box-shadow:var(--shadow)
}
 .footer{
	background:#07101C;
	border-top:1px solid var(--line);
	padding:56px 0 34px
}
.footer-grid{
	display:grid;
	grid-template-columns:1.2fr .8fr .8fr .8fr;
	gap:40px
}
.footer h3{
	font-size:1rem;
	margin:0 0 14px
}
.footer a,.footer p{
	color:#AEBED5
}
.footer a:hover{
	color:#fff
}
.footer ul{
	list-style:none;
	padding:0;
	margin:0;
	display:grid;
	gap:10px
}
.footer-bottom{
	border-top:1px solid rgba(245,243,231,.12);
	margin-top:44px;
	padding-top:26px;
	display:grid;
	grid-template-columns:1fr 1.25fr;
	gap:32px;
	color:#8EA0BD;
	font-size:.88rem
}
 .article-hero{
	padding:76px 0 50px;
	background:var(--gradient-dark);
	border-bottom:1px solid var(--line)
}
.article{
	padding:64px 0;
	background:linear-gradient(180deg,#010409,#07101C)
}
.article h2{
	font-size:1.8rem;
	line-height:1.18;
	margin:2rem 0 .8rem
}
.article h3{
	font-size:1.25rem;
	margin:1.6rem 0 .5rem
}
.article p,.article li{
	color:#CAD8EC
}
.article ul,.article ol{
	padding-left:1.35rem
}
.article-card{
	background:rgba(255,255,255,.06);
	border:1px solid var(--line);
	border-radius:24px;
	padding:28px;
	margin:26px 0
}
.toc{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin-top:28px
}
.toc a{
	border:1px solid var(--line);
	border-radius:999px;
	padding:9px 13px;
	background:rgba(255,255,255,.06);
	color:#D8E6FA;
	font-weight:700;
	font-size:.92rem
}
.breadcrumb{
	display:flex;
	gap:8px;
	align-items:center;
	color:#AFC0D9;
	font-size:.92rem;
	margin-bottom:20px
}
.breadcrumb a{
	text-decoration:underline;
	text-decoration-color:rgba(245,243,231,.3)
}
.service-detail{
	display:grid;
	grid-template-columns:.8fr 1.2fr;
	gap:30px;
	align-items:start;
	margin:28px 0
}
.service-index{
	position:sticky;
	top:110px
}
.table{
	width:100%;
	border-collapse:collapse;
	overflow:hidden;
	border-radius:18px
}
.table th,.table td{
	text-align:left;
	border-bottom:1px solid rgba(245,243,231,.11);
	padding:14px;
	color:#C9D7EC
}
.table th{
	color:#fff;
	background:rgba(15,82,186,.16)
}
.notice{
	border:1px solid rgba(15,82,186,.44);
	background:rgba(15,82,186,.12);
	border-radius:20px;
	padding:18px;
	color:#DCEBFF
}
.cookie-banner{
	position:fixed;
	left:20px;
	right:20px;
	bottom:20px;
	z-index:1100;
	background:rgba(1,4,9,.94);
	border:1px solid rgba(245,243,231,.16);
	box-shadow:var(--shadow);
	border-radius:24px;
	padding:20px;
	display:none
}
.cookie-banner.show{
	display:block
}
.cookie-banner__grid{
	display:grid;
	grid-template-columns:1fr auto;
	gap:18px;
	align-items:center
}
.cookie-actions{
	display:flex;
	flex-wrap:wrap;
	gap:10px
}
.cookie-panel{
	display:none;
	border-top:1px solid var(--line);
	margin-top:14px;
	padding-top:14px
}
.cookie-panel.show{
	display:grid;
	gap:12px
}
.toggle-row{
	display:flex;
	justify-content:space-between;
	gap:16px;
	align-items:center;
	border:1px solid var(--line);
	border-radius:16px;
	padding:12px;
	background:rgba(255,255,255,.05)
}
.toggle-row input{
	width:22px;
	height:22px
}
.alert{
	position:fixed;
	right:22px;
	bottom:22px;
	width:min(430px,calc(100% - 44px));
	z-index:1200;
	background:linear-gradient(135deg,#010409,#0F52BA);
	border:1px solid rgba(245,243,231,.18);
	border-radius:24px;
	padding:22px;
	box-shadow:var(--shadow);
	transform:translateY(24px) scale(.97);
	opacity:0;
	pointer-events:none;
	transition:.28s
}
.alert.show{
	transform:translateY(0) scale(1);
	opacity:1
}
.alert h3{
	margin:0 0 6px
}
.alert p{
	margin:0;
	color:#D6E5F8
}
.alert .spark{
	position:absolute;
	right:18px;
	top:18px;
	width:36px;
	height:36px;
	border-radius:50%;
	background:#F5F3E7;
	color:#010409;
	display:grid;
	place-items:center;
	font-weight:900
}
.skip-link{
	position:absolute;
	left:-999px;
	top:auto;
	width:1px;
	height:1px;
	overflow:hidden
}
.skip-link:focus{
	left:12px;
	top:12px;
	width:auto;
	height:auto;
	padding:10px 12px;
	background:#fff;
	color:#010409;
	z-index:2000;
	border-radius:10px
}
 @media(max-width:980px){
	.hero-grid,.grid-2,.result-layout,.contact-grid,.footer-bottom,.service-detail{
		grid-template-columns:1fr
	}
	.grid-3,.stats,.footer-grid{
		grid-template-columns:repeat(2,1fr)
	}
	.long-copy{
		columns:1
	}
	.service-index{
		position:static
	}
	.hero{
		padding-top:72px
	}
	.trust-row{
		grid-template-columns:1fr
	}
	.floating-badge{
		right:10px
	}
	.metric-badge{
		left:12px
	}
}
 @media(max-width:760px){
	.header__inner{
		height:72px
	}
	.logo img{
		width:205px
	}
	.burger{
		display:flex
	}
	.nav{
		position:fixed;
		inset:72px 0 auto 0;
		background:rgba(1,4,9,.98);
		border-bottom:1px solid var(--line);
		padding:18px 20px 24px;
		display:none;
		grid-template-columns:1fr;
		gap:8px
	}
	.nav.open{
		display:grid
	}
	.nav a{
		padding:13px 0;
		border-bottom:1px solid rgba(245,243,231,.08)
	}
	.nav .legal-link{
		display:block
	}
	.hero h1{
		font-size:3.1rem
	}
	.hero-grid{
		gap:42px
	}
	.grid-3,.stats,.footer-grid{
		grid-template-columns:1fr
	}
	.section{
		padding:70px 0
	}
	.section-tight{
		padding:48px 0
	}
	.container,.narrow{
		width:min(100% - 28px,1180px)
	}
	.card,.form-card{
		padding:22px
	}
	.cookie-banner__grid{
		grid-template-columns:1fr
	}
	.cookie-actions .btn{
		flex:1 1 100%
	}
	.footer-bottom{
		gap:18px
	}
	.stats{
		text-align:left
	}
	.stat{
		border-bottom:1px solid var(--line);
		padding-bottom:18px
	}
	.hero-actions .btn{
		width:100%
	}
	.trust-pill{
		padding:14px
	}
	.floating-badge{
		width:76px;
		height:76px
	}
	.metric-badge{
		position:relative;
		left:auto;
		bottom:auto;
		margin-top:-24px;
		width:max-content
	}
	.article h1{
		font-size:2.45rem
	}
}
 @media(prefers-reduced-motion:reduce){
	*{
		scroll-behavior:auto!important;
		animation:none!important;
		transition:none!important
	}
}

/* ===== Premium mobile adaptation: added for phone/tablet UX ===== */
html{
  -webkit-text-size-adjust:100%;
}
body{
  overflow-x:hidden;
}
body.nav-open{
  overflow:hidden;
  touch-action:none;
}
a,button,input,select,textarea{
  -webkit-tap-highlight-color:rgba(91,169,255,.18);
}
button,.btn,.nav a,.toc a{
  touch-action:manipulation;
}
.header{
  transition:background .22s ease, box-shadow .22s ease;
}
.header__inner{
  min-width:0;
}
.logo{
  min-width:0;
  flex:0 1 auto;
}
.logo img{
  width:clamp(172px,28vw,228px);
  max-height:58px;
  object-fit:contain;
}
.nav{
  will-change:transform,opacity;
}
.hero-card img,
.image-frame img,
.map-placeholder img{
  width:100%;
  height:auto;
  object-fit:cover;
}
.card,
.form-card,
.article-card,
.contact-card,
.trust-pill,
.stat,
.cookie-banner,
.alert{
  overflow-wrap:anywhere;
}
.btn{
  min-width:0;
  text-align:center;
}
input,select,textarea{
  font-size:16px;
}
select{
  min-height:50px;
}
.table{
  min-width:620px;
}
.article-card:has(.table),
.article-card.table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
@supports not selector(:has(*)){
  .article-card{
    overflow-x:auto;
  }
}

@media (max-width: 1100px){
  .container,.narrow{
    width:min(100% - 32px,1180px);
  }
  .header__inner{
    gap:16px;
  }
  .nav{
    gap:18px;
    font-size:.9rem;
  }
  .hero-grid{
    gap:42px;
  }
}

@media (max-width: 860px){
  .header{
    background:rgba(1,4,9,.9);
  }
  .header__inner{
    height:72px;
  }
  .burger{
    display:flex;
    flex:0 0 48px;
    position:relative;
    z-index:1202;
  }
  .burger:focus-visible{
    outline:3px solid rgba(91,169,255,.68);
    outline-offset:3px;
  }
  .nav{
    position:fixed;
    left:0;
    right:0;
    top:72px;
    height:calc(100dvh - 72px);
    max-height:calc(100dvh - 72px);
    padding:18px 16px max(28px,env(safe-area-inset-bottom));
    display:grid;
    grid-auto-rows:min-content;
    align-content:start;
    gap:8px;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    background:
      radial-gradient(circle at 78% 0%,rgba(15,82,186,.34),transparent 34%),
      radial-gradient(circle at 8% 90%,rgba(245,243,231,.09),transparent 28%),
      rgba(1,4,9,.985);
    border-bottom:1px solid var(--line);
    box-shadow:0 26px 80px rgba(0,0,0,.52);
    transform:translateY(-14px);
    opacity:0;
    pointer-events:none;
    visibility:hidden;
    transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
  }
  .nav.open{
    display:grid;
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
    visibility:visible;
  }
  .nav a{
    display:flex;
    align-items:center;
    min-height:52px;
    padding:14px 16px;
    border:1px solid rgba(245,243,231,.09);
    border-radius:16px;
    background:rgba(255,255,255,.052);
    font-size:1.02rem;
    font-weight:750;
  }
  .nav a:hover,
  .nav a:focus-visible{
    background:rgba(15,82,186,.18);
    color:#fff;
  }
  .nav .legal-link{
    display:flex;
  }

  .hero{
    padding:54px 0 58px;
    background:
      radial-gradient(circle at 82% 9%,rgba(15,82,186,.42),transparent 31%),
      linear-gradient(145deg,#010409 0%,#071125 31%,#0F52BA 100%);
  }
  .hero:before{
    background:radial-gradient(circle at 5% 15%,rgba(245,243,231,.12),transparent 26%);
  }
  .hero-grid{
    grid-template-columns:1fr;
    gap:34px;
  }
  .hero h1{
    font-size:clamp(2.35rem,11vw,3.25rem);
    line-height:1;
    letter-spacing:-.055em;
    max-width:11ch;
  }
  .hero .lead{
    font-size:1.03rem;
    line-height:1.72;
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }
  .hero-actions .btn{
    width:100%;
  }
  .trust-row{
    grid-template-columns:1fr;
    gap:10px;
    margin-top:24px;
  }
  .trust-pill{
    padding:13px 14px;
    border-radius:16px;
  }
  .hero-card img{
    border-radius:24px;
    aspect-ratio:16/11;
    object-position:center;
  }
  .floating-badge{
    width:68px;
    height:68px;
    right:10px;
    top:10px;
    border-radius:22px;
  }
  .floating-badge svg{
    width:32px;
    height:32px;
  }
  .metric-badge{
    position:static;
    width:100%;
    margin:12px 0 0;
    border-radius:18px;
    padding:14px 16px;
  }

  .section{
    padding:58px 0;
  }
  .section-tight{
    padding:42px 0;
  }
  .section-head{
    text-align:left;
    margin-bottom:28px;
  }
  .section-head h2,
  .article h1{
    font-size:clamp(2rem,8.6vw,2.75rem);
    line-height:1.08;
  }
  .section-head p,
  .lead{
    font-size:1rem;
  }
  .grid-3,
  .grid-2,
  .result-layout,
  .contact-grid,
  .footer-grid,
  .footer-bottom,
  .service-detail{
    grid-template-columns:1fr;
  }
  .grid-3,.grid-2,.result-layout,.contact-grid{
    gap:18px;
  }
  .card,
  .form-card,
  .article-card,
  .contact-card{
    border-radius:22px;
    padding:20px;
  }
  .card h3{
    font-size:1.13rem;
  }
  .icon{
    width:46px;
    height:46px;
    border-radius:14px;
  }
  .split-copy h2{
    font-size:clamp(2rem,8.8vw,2.7rem);
  }
  .check-list{
    margin-top:20px;
  }
  .check-list li{
    grid-template-columns:32px 1fr;
    gap:12px;
    margin:16px 0;
  }
  .check{
    width:32px;
    height:32px;
  }
  .image-frame img{
    border-radius:22px;
    aspect-ratio:16/11;
  }
  .quote-stack{
    gap:18px;
  }
  .quote{
    padding-left:16px;
  }
  .stats{
    grid-template-columns:1fr 1fr;
    gap:12px;
    text-align:left;
  }
  .stat{
    border:1px solid var(--line);
    border-radius:18px;
    padding:18px;
    background:rgba(255,255,255,.052);
  }
  .stat strong{
    font-size:2.05rem;
  }
  .long-copy{
    columns:1;
    font-size:.98rem;
  }
  .form-card{
    padding:20px;
  }
  .field{
    margin-bottom:15px;
  }
  .field input,
  .field select,
  .field textarea{
    min-height:50px;
    padding:13px 14px;
  }
  .field textarea{
    min-height:118px;
  }
  .contact-line{
    gap:10px;
  }
  .map-placeholder{
    border-radius:20px;
  }
  .map-placeholder img{
    aspect-ratio:16/10;
  }

  .article-hero{
    padding:42px 0 34px;
  }
  .article{
    padding:42px 0;
  }
  .article h2{
    font-size:1.5rem;
    line-height:1.22;
  }
  .article h3{
    font-size:1.12rem;
  }
  .breadcrumb{
    flex-wrap:wrap;
  }
  .toc{
    gap:9px;
  }
  .toc a{
    flex:1 1 auto;
    text-align:center;
    padding:10px 12px;
    font-size:.88rem;
  }
  .service-index{
    position:static;
  }
  .table{
    font-size:.92rem;
  }
  .table th,.table td{
    padding:12px;
  }

  .footer{
    padding:40px 0 28px;
  }
  .footer-grid{
    gap:26px;
  }
  .footer-bottom{
    gap:18px;
    margin-top:30px;
    padding-top:20px;
  }

  .cookie-banner{
    left:12px;
    right:12px;
    bottom:max(12px,env(safe-area-inset-bottom));
    border-radius:20px;
    padding:16px;
    max-height:calc(100dvh - 24px);
    overflow:auto;
    -webkit-overflow-scrolling:touch;
  }
  .cookie-banner__grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .cookie-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .cookie-actions .btn{
    width:100%;
  }
  .toggle-row{
    align-items:flex-start;
  }
  .alert{
    left:12px;
    right:12px;
    bottom:max(12px,env(safe-area-inset-bottom));
    width:auto;
    border-radius:20px;
    padding:20px 56px 20px 18px;
  }
}

@media (max-width: 520px){
  .container,.narrow{
    width:min(100% - 24px,1180px);
  }
  .header__inner{
    height:66px;
  }
  .logo img{
    width:clamp(150px,58vw,190px);
    max-height:46px;
  }
  .burger{
    width:44px;
    height:42px;
    border-radius:13px;
  }
  .nav{
    top:66px;
    height:calc(100dvh - 66px);
    max-height:calc(100dvh - 66px);
    padding:14px 12px max(24px,env(safe-area-inset-bottom));
  }
  .nav a{
    min-height:50px;
    padding:13px 14px;
  }
  .hero{
    padding:42px 0 48px;
  }
  .eyebrow{
    font-size:.79rem;
    padding:7px 10px;
  }
  .hero h1{
    max-width:12ch;
    font-size:clamp(2.08rem,12vw,2.78rem);
    letter-spacing:-.05em;
  }
  .hero .lead{
    font-size:.98rem;
  }
  .btn{
    min-height:50px;
    border-radius:14px;
    padding:13px 16px;
  }
  .trust-pill strong{
    font-size:1rem;
  }
  .trust-pill span{
    font-size:.82rem;
  }
  .section{
    padding:48px 0;
  }
  .section-head h2,
  .article h1,
  .split-copy h2{
    font-size:clamp(1.78rem,9.7vw,2.35rem);
  }
  .grid-3,
  .grid-2,
  .result-layout,
  .contact-grid{
    gap:16px;
  }
  .card,
  .form-card,
  .article-card,
  .contact-card{
    padding:18px;
    border-radius:20px;
  }
  .stats{
    grid-template-columns:1fr;
  }
  .stat{
    padding:16px;
  }
  .stat strong{
    font-size:2rem;
  }
  .quote h3{
    font-size:1.16rem;
  }
  .form-note{
    font-size:.76rem;
  }
  .article-card{
    margin:18px 0;
  }
  .article ul,
  .article ol{
    padding-left:1.1rem;
  }
  .toc a{
    flex:1 1 100%;
  }
  .footer-grid{
    gap:22px;
  }
  .footer img{
    max-width:190px;
  }
}

@media (max-width: 380px){
  .container,.narrow{
    width:min(100% - 20px,1180px);
  }
  .logo img{
    width:145px;
  }
  .hero h1{
    font-size:2rem;
  }
  .card,
  .form-card,
  .article-card,
  .contact-card{
    padding:16px;
  }
}



/* ===== Final responsive pass for production mobile layouts ===== */
html{
  scroll-padding-top:88px;
}
body{
  min-width:320px;
}
main,
.header,
.footer{
  max-width:100%;
}
section[id],
.article section[id]{
  scroll-margin-top:96px;
}
.hero-grid,
.grid-2,
.grid-3,
.result-layout,
.contact-grid,
.footer-grid,
.footer-bottom,
.service-detail{
  min-width:0;
}
.hero-grid > *,
.grid-2 > *,
.grid-3 > *,
.result-layout > *,
.contact-grid > *,
.footer-grid > *,
.footer-bottom > *,
.service-detail > *{
  min-width:0;
}
.hero h1,
.section-head h2,
.article h1,
.split-copy h2,
.card h3,
.quote h3{
  text-wrap:balance;
}
.lead,
.section-head p,
.article p,
.article li,
.card p,
.contact-card p,
.footer p{
  overflow-wrap:anywhere;
}

/* Tables become clean, readable cards on small screens instead of forcing horizontal overflow. */
.table{
  min-width:0 !important;
  max-width:100%;
  overflow:hidden;
  table-layout:auto;
}
.table th,
.table td{
  vertical-align:top;
  overflow-wrap:anywhere;
}

@media (max-width: 700px){
  .article .table{
    display:block;
    width:100%;
    border:0;
    border-radius:0;
    overflow:visible;
  }
  .article .table thead{
    display:none;
  }
  .article .table tbody{
    display:grid;
    gap:12px;
  }
  .article .table tr{
    display:grid;
    border:1px solid rgba(245,243,231,.13);
    border-radius:18px;
    background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.045));
    overflow:hidden;
  }
  .article .table td{
    display:grid;
    grid-template-columns:minmax(96px,34%) minmax(0,1fr);
    gap:12px;
    align-items:start;
    border-bottom:1px solid rgba(245,243,231,.09);
    padding:12px 14px;
    color:#D7E4F7;
  }
  .article .table td:last-child{
    border-bottom:0;
  }
  .article .table td::before{
    content:attr(data-label);
    color:#fff;
    font-weight:800;
    font-size:.82rem;
    line-height:1.35;
  }
}

@media (max-width: 860px){
  .header__inner{
    width:min(100% - 28px,1180px);
  }
  .nav{
    overscroll-behavior:contain;
  }
  .nav a{
    justify-content:space-between;
  }
  .nav a::after{
    content:"›";
    opacity:.45;
    font-size:1.2rem;
  }
  .hero-card,
  .image-frame,
  .map-placeholder{
    isolation:isolate;
  }
  .hero-card img,
  .image-frame img,
  .map-placeholder img{
    max-height:420px;
  }
  .contact-card .icon{
    flex:0 0 auto;
  }
  .service-detail > div{
    display:grid;
    gap:26px;
  }
  .service-detail > div > section{
    scroll-margin-top:86px;
  }
  .footer a{
    display:inline-flex;
    min-height:32px;
    align-items:center;
  }
}

@media (max-width: 520px){
  html{
    scroll-padding-top:74px;
  }
  .header__inner{
    width:min(100% - 24px,1180px);
  }
  .eyebrow{
    max-width:100%;
    line-height:1.35;
  }
  .hero h1,
  .article h1{
    hyphens:auto;
  }
  .hero-card img,
  .image-frame img{
    max-height:320px;
  }
  .contact-line{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    align-items:start;
  }
  .contact-line .icon{
    width:42px;
    height:42px;
    border-radius:14px;
  }
  .toggle-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
  }
  .alert h3,
  .cookie-banner strong{
    padding-right:32px;
  }
}

@media (max-width: 360px){
  .container,.narrow,
  .header__inner{
    width:min(100% - 18px,1180px);
  }
  .logo img{
    width:136px;
  }
  .burger{
    width:42px;
  }
  .hero h1{
    font-size:1.9rem;
  }
  .article .table td{
    grid-template-columns:1fr;
    gap:4px;
  }
}

/* ===== services.html mobile correction v20260508-2 ===== */
.article-hero h1{
  font-size:clamp(2.25rem,5.2vw,3.45rem);
  line-height:1.06;
  letter-spacing:-.05em;
  margin:0 0 18px;
  max-width:920px;
  text-wrap:balance;
}
.services-page .article-hero{
  overflow:hidden;
}
.services-page .service-detail{
  grid-template-columns:minmax(240px,.82fr) minmax(0,1.18fr);
  gap:32px;
}
.services-page .service-content{
  min-width:0;
}
.services-page .service-content > section{
  min-width:0;
}
.services-page .service-content > section:first-child h2{
  margin-top:0;
}
.services-page .mobile-service-table{
  display:none;
}

@media (max-width: 860px){
  .article-hero h1{
    font-size:clamp(2rem,8.8vw,2.8rem);
    line-height:1.08;
    letter-spacing:-.04em;
  }
  .services-page .article-hero{
    padding:36px 0 28px;
  }
  .services-page .service-detail{
    display:block;
    margin:0;
  }
  .services-page .service-index{
    position:static;
    margin:0 0 18px;
  }
  .services-page .service-index h2{
    margin-top:0;
  }
  .services-page .service-index ul{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    padding-left:0;
    list-style:none;
  }
  .services-page .service-index li{
    border:1px solid rgba(245,243,231,.12);
    border-radius:14px;
    background:rgba(255,255,255,.045);
    padding:10px 12px;
    line-height:1.35;
  }
  .services-page .service-content{
    display:grid;
    gap:18px;
  }
  .services-page .service-content > section{
    border:1px solid rgba(245,243,231,.12);
    border-radius:22px;
    background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.035));
    padding:20px;
    overflow:hidden;
  }
  .services-page .service-content > section h2{
    margin-top:0;
  }
  .services-page .notice{
    margin-top:14px;
  }
}

@media (max-width: 700px){
  .services-page .table{
    display:none !important;
  }
  .services-page .mobile-service-table{
    display:grid;
    gap:12px;
    margin-top:16px;
  }
  .services-page .mobile-service-table article{
    border:1px solid rgba(245,243,231,.13);
    border-radius:18px;
    background:linear-gradient(180deg,rgba(15,82,186,.13),rgba(255,255,255,.045));
    padding:15px;
  }
  .services-page .mobile-service-table strong,
  .services-page .mobile-service-table span{
    display:block;
  }
  .services-page .mobile-service-table strong{
    color:#fff;
    font-size:1.02rem;
    margin-bottom:5px;
  }
  .services-page .mobile-service-table span{
    color:#D9E6FF;
    font-weight:750;
    line-height:1.4;
    margin-bottom:7px;
  }
  .services-page .mobile-service-table p{
    margin:0;
    color:#BBCBE3;
    line-height:1.55;
  }
}

@media (max-width: 520px){
  .article-hero h1{
    font-size:clamp(1.85rem,9.3vw,2.35rem);
    max-width:100%;
    hyphens:auto;
  }
  .services-page .article-hero .lead{
    line-height:1.65;
  }
  .services-page .toc{
    display:grid;
    grid-template-columns:1fr;
  }
  .services-page .toc a{
    width:100%;
  }
  .services-page .service-index ul{
    grid-template-columns:1fr;
  }
  .services-page .service-content{
    gap:14px;
  }
  .services-page .service-content > section{
    padding:16px;
    border-radius:20px;
  }
  .services-page .btn{
    width:100%;
  }
}
