/* aitec clean rebuild */
:root{
  --blue:#0038d8;
  --blue-dark:#002a9f;
  --red:#ff2300;
  --ink:#1f2937;
  --muted:#64748b;
  --bg:#f4f7fb;
  --card:#ffffff;
  --line:#d8e2f2;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.75;
}
img{max-width:100%;height:auto}
a{color:var(--blue)}
.site-header{
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:10;
}
.header-inner{
  max-width:1120px;
  margin:0 auto;
  padding:14px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.logo img{width:190px;display:block}
.nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.nav a{
  display:inline-block;
  padding:9px 12px;
  color:var(--ink);
  text-decoration:none;
  font-weight:700;
  border-radius:999px;
}
.nav a:hover,.nav a.current{background:#eaf0ff;color:var(--blue)}
.hero{
  background:
    linear-gradient(90deg,rgba(0,22,80,.88),rgba(0,50,190,.55)),
    url("assets/images/10laser.JPG") center/cover no-repeat;
  color:#fff;
}
.hero-inner{
  max-width:1120px;
  margin:0 auto;
  padding:90px 20px 78px;
}
.hero h1{
  font-size:clamp(2.1rem,5vw,4rem);
  line-height:1.25;
  margin:14px 0;
}
.hero p{
  max-width:760px;
  font-size:clamp(1.05rem,2vw,1.32rem);
  margin:0 0 28px;
}
.badge{
  display:inline-block;
  background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.35);
  border-radius:999px;
  padding:5px 12px;
  font-weight:800;
}
main{
  max-width:1120px;
  margin:0 auto;
  padding:42px 20px;
}
.section{margin-bottom:56px}
.section h1,.section h2{
  line-height:1.35;
  margin:0 0 16px;
}
.section h1{font-size:clamp(1.9rem,4vw,3rem)}
.section h2{font-size:clamp(1.55rem,3vw,2.25rem)}
.lead{font-size:1.13rem;color:#334155;max-width:860px}
.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.grid.two{grid-template-columns:repeat(2,1fr)}
.card{
	background:var(--card);border:1px solid var(--line);
	border-top-left-radius: 20px 20px;
	border-top-right-radius: 20px 20px;
	border-bottom-right-radius: 20px 20px;
	border-bottom-left-radius: 20px 20px;
	padding-top: 24px;
	padding-right: 5pt;
	padding-bottom: 24px;
	padding-left: 5pt;
	box-shadow: 0px 12px 28px rgba(15, 23, 42, 0.07);
	margin-left: 5pt;
	margin-right: 5pt;
}
.card h3{margin-top:2;font-size:1.35rem}
.card p:last-child{margin-bottom:0}
.btn-row{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  align-items:flex-start;
}
.btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 38px;
	min-height: 38px;
	max-height: 38px;
	padding-top: 0px;
	padding-right: 20pt;
	padding-bottom: 0px;
	padding-left: 20pt;
	box-sizing: border-box;
	border-top-left-radius: 8px 8px;
	border-top-right-radius: 8px 8px;
	border-bottom-right-radius: 8px 8px;
	border-bottom-left-radius: 8px 8px;
	font-size: 1rem;
	line-height: 1;
	white-space: nowrap;
	overflow: hidden;
	font-weight: 800;
	text-decoration: none;
	border-width: 2px;
	border-style: solid;
	border-color: transparent;
	-webkit-appearance: none;
	appearance: none;
	-webkit-text-fill-color: currentColor;
	margin-left: 20pt;
	margin-right: 20pt;
}
.btn.primary{
	background-color:var(--red);
	color: #ffffff;-webkit-text-fill-color:#fff
	margin-left : 1em;
	margin-right: 0pt;
	margin-left: 0pt;
	padding-right: 0pt;
	padding-left: 0pt;
}
.btn.blue{
	background-color:var(--blue);
	color: #ffffff;-webkit-text-fill-color:#fff
	margin-left : 1em;
	margin-right: 20pt;
	margin-left: 20pt;
}

.btn.mail-red,
a.btn.mail-red,
a.btn.mail-red:link,
a.btn.mail-red:visited{
  background-color:var(--red) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border-color:var(--red) !important;
}
.card-action-row{
  margin-top:18px;
}
.card .btn-row{
	padding-top: 0px;
	padding-right: px;
	padding-bottom: 10px;
	padding-left: 10px;
	box-sizing: border-box;
	background-color: #ffffff;
	background-image: none;
	background-repeat: repeat;
	background-attachment: scroll;
	background-position: 0% 0%;
	background-size: auto auto;
	background-origin: padding-box;
	background-clip: border-box;
	border-top-left-radius: 12px 12px;
	border-top-right-radius: 12px 12px;
	border-bottom-right-radius: 12px 12px;
	border-bottom-left-radius: 12px 12px;
	margin-left: 2em;
	margin-right: 3em;
	text-align: center;
	padding-right: 10px;
}
.card-action-row .btn{
	height: 38px;
	min-height: 38px;
	max-height: 38px;
	padding-top: 0px;
	padding-right: 0px;
	padding-bottom: 0px;
	padding-left: 0px;
	margin-top: 1em;
	margin-left: 1em;
	margin-right: 1em;
	margin-bottom: 1em;
}
.btn.light{
	background-color: #ffffff;
	background-image: none;
	background-repeat: repeat;
	background-attachment: scroll;
	background-position: 0% 0%;
	background-size: auto auto;
	background-origin: padding-box;
	background-clip: border-box;color:var(--blue)
	margin-left : 1em;
	margin-right: 1em;
	color: #000000;
	margin-left: 1em;
}
.btn.outline{border-color:var(--blue);color:var(--blue);background:transparent}
.btn:hover{filter:brightness(.96);transform:translateY(-1px)}
.photo-card{padding:0;overflow:hidden}
.photo-card img{display:block;width:100%;height:220px;object-fit:cover}
.photo-card .caption{padding:16px 18px}
table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
}
th,td{
  border:1px solid var(--line);
  padding:14px;
  vertical-align:top;
  text-align:left;
}
th{background:#eef4ff;color:#173b87}
.notice{
  background:#fff7ed;
  border:1px solid #fed7aa;
  border-radius:18px;
  padding:20px;
}
.map-box{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:12px;
}
.footer{
  background:#0f172a;
  color:#fff;
  margin-top:50px;
}
.footer-inner{
  max-width:1120px;
  margin:0 auto;
  padding:34px 20px;
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:24px;
}
.footer a{color:#fff}
.small{font-size:.92rem;color:var(--muted)}
.footer .small{color:#cbd5e1}
@media(max-width:780px){
  .header-inner{display:block}
  .logo{display:flex;justify-content:center;margin-bottom:10px}
  .logo img{width:170px}
  .nav{justify-content:center}
  .nav a{font-size:.92rem;padding:7px 9px}
  .hero-inner{padding:58px 20px 52px}
  .btn-row .btn{width:100%;height:38px !important;min-height:38px !important;max-height:38px !important}
  .grid,.grid.two{grid-template-columns:1fr}
  main{padding:32px 16px}
  .footer-inner{grid-template-columns:1fr}
  th,td{display:block;width:100%}
  tr{display:block;margin-bottom:14px}
}


.case-table img{
  width:180px;
  max-width:100%;
  height:auto;
  display:block;
  border-radius:10px;
}
.case-table td:first-child{
  font-size:1.15rem;
  color:var(--blue);
}
@media(max-width:780px){
  .case-table img{
    width:100%;
  }
}


.x-post-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  align-items:start;
}
.x-post-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:18px;
  box-shadow:0 12px 28px rgba(15,23,42,.07);
  min-height:180px;
}
.x-post-card h3{
  margin:0 0 10px;
  font-size:1.05rem;
  color:#173b87;
}
.x-post-card blockquote{
  margin:0;
}
.contact-card{
  margin-top:22px;
}
@media(max-width:980px){
  .x-post-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:780px){
  .x-post-grid{grid-template-columns:1fr}
}

.google-map-box iframe{
  display:block;
  width:100%;
  min-height:320px;
  border-radius:14px;
}
.route-link-wrap{
  margin:14px 0 0;
}
.route-btn{
  width:100%;
}
.access-map-grid{
  align-items:stretch;
}
.access-map-grid .map-box{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.inquiry-buttons{
  margin-top:18px;
}
.inquiry-buttons .btn{
  flex:1 1 210px;
  height:38px !important;
}

.contact-link-block{
  display:inline-flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  flex:1 1 210px;
}
.contact-link-block .btn{
  width:100%;
}
.contact-tel-fax{
  margin:0;
  font-size:.95rem;
  line-height:1.55;
  color:#334155;
  text-align:center;
}
.contact-tel-fax a{
  color:inherit;
  text-decoration:none;
}
.contact-card .contact-link-block{
  margin-right:10px;
  vertical-align:top;
}

/* カード内のテキスト左右余白（全角2文字分） */
.card h3,
.card > p:not(.btn-row){
  padding-left:2em;
  padding-right:2em;
  box-sizing:border-box;
}

/* 2026-05-26: red/blue button alignment fix */
.btn,
a.btn,
a.btn:link,
a.btn:visited{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  padding:0 1.8em !important;
  margin:0 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  text-align:center !important;
  vertical-align:middle !important;
  text-decoration:none !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}

.btn-row,
.card-action-row,
.inquiry-buttons{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  flex-wrap:wrap !important;
}

.card .btn-row,
.card-action-row{
  margin:18px 0 0 !important;
  padding:5px !important;
  background:#fff !important;
  border-radius:12px !important;
}

.card-action-row .btn{
  margin:0 !important;
}

.btn.primary,
.btn.blue,
.btn.mail-red,
a.btn.mail-red,
a.btn.mail-red:link,
a.btn.mail-red:visited{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border-color:transparent !important;
}

.btn.primary,
.btn.mail-red,
a.btn.mail-red,
a.btn.mail-red:link,
a.btn.mail-red:visited{
  background-color:var(--red) !important;
}

.btn.blue{
  background-color:var(--blue) !important;
}

@media(max-width:780px){
  .btn-row .btn,
  .card-action-row .btn,
  .inquiry-buttons .btn{
    width:100% !important;
  }
}
