:root{

/* ロゴのメイン紺色：信頼、重厚感、インフラ */
  --main-color: #1A3059; 

  /* ロゴのアクセント青色：エネルギー、先進性、クリーン */
  --accent-color: #05a6bd; 

  /* 背景：青みがかった白で清潔感を強調 */
  --bg-color: #F8FAFC; 

  /* テキスト：可読性を重視した深いグレー */
  --text-color: #1F2937; 

  /* ボーダー：要素を邪魔しない淡いグレーブルー */
  --border-color: #CBD5E1;

}


*{
box-sizing:border-box;
}

html, body{
height:100%;
}

body{
display:flex;
flex-direction:column;
}

main{
flex:1;
}

body{
margin:0;
font-family:
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
"Noto Sans JP",
sans-serif;

color:var(--text-color);
line-height:1.7;
background:white;
}

.content{
padding:80px 0;
}



/* inner */

.inner{

max-width:1200px;
margin:auto;
padding:0 24px;

}


/* header */

header{
border-bottom:1px solid var(--border-color);
background:white;
}

.nav{
display:flex;
justify-content:space-between;
align-items:center;
height:70px;
}

.logo{

font-weight:700;
font-size:20px;
color:var(--main-color);
text-decoration:none;

}

.logo img {

width: 300px;
height: auto;
margin-top: 5px;

}

nav a{
margin-left:24px;
text-decoration:none;
color:var(--text-color);
font-size:14px;
}

nav a:hover{
color:var(--main-color);
}
/* navigation active */

nav a.active{

color:var(--main-color);

font-weight:600;

border-bottom:2px solid var(--accent-color);

padding-bottom:4px;

}


/* hero */

.hero{

padding:120px 0;
text-align:center;

background:linear-gradient(
135deg,
var(--main-color),
#2C4A70
);
background:
   linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
   url("../img/Gemini_hero.png") no-repeat;
background-size: cover;
background-position: center;

color:white;
}

.hero h1{
font-size:42px;
margin-bottom:20px;
}

.hero p{
font-size:18px;
opacity:.9;
}

h3 {
   color:var(--accent-color);
   text-align: center;
}


/* button */

.btn-main{

display:inline-block;

margin-top:30px;

background:var(--accent-color);
color:white;

padding: 12px 58px;
border-radius:6px;

text-decoration:none;

font-weight:600;

}



/* section */

.section{

padding:90px 0;

}

.section:first-of-type{

padding-top:60px;

}

.section:last-of-type{

padding-bottom:120px;

}

.section:nth-child(even){
background:var(--bg-color);
}

.section h2{

font-size:28px;
text-align:center;
margin-bottom:40px;
color:var(--main-color);
position:relative;

}

.section h2:after{

content:"";

width:50px;
height:3px;

background:var(--accent-color);

display:block;

margin:15px auto 0;

border-radius:3px;

}

.section p{
max-width:700px;
margin:auto;
text-align:center;
}



/* grid */

.grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
margin-top:40px;
}



/* card */

.card{

background:white;

padding:30px;

border-radius:10px;

border:1px solid var(--border-color);

box-shadow:0 4px 14px rgba(0,0,0,0.04);

transition:all .25s ease;

}

.card:hover{

transform:translateY(-4px);

box-shadow:0 10px 30px rgba(0,0,0,0.08);

}


/* results */

.result-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:30px;

text-align:center;

}

.result-number{
font-size:42px;
font-weight:700;
color:var(--accent-color);
}

.result-text{
color:#666;
}



/* message */

.message{
max-width:800px;
margin:auto;
text-align:center;
}

.message-name{
margin-top:20px;
font-weight:600;
}



/* cta */

.cta{

background:var(--main-color);

background:
   linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
   url("../img/Gemini_cta.png") no-repeat;
background-size: cover;
background-position: center center;

color:white;

text-align:center;

padding:90px 0;

}

.cta .btn-main{
background:white;
color:var(--main-color);
}



/* footer */

footer{
background:#0F172A;
color:white;
text-align:center;
padding:40px 0;
font-size:14px;
}



/* responsive */

@media(max-width:768px){

.hero h1{
font-size:28px;
}

.grid{
grid-template-columns:1fr;
}

.result-grid{
grid-template-columns:1fr;
}

.nav{
flex-direction:column;
height:auto;
padding:20px 0;
}

nav{
margin-top:10px;
}

}

/* company table */

.company-table{

width:100%;

border-collapse:collapse;

margin-top:40px;

background:white;

}

.company-table th,
.company-table td{

border:1px solid var(--border-color);

padding:16px;

text-align:left;

font-size:15px;

}

.company-table th{

width:220px;

background:var(--bg-color);

font-weight:600;

color:var(--main-color);

}


/* form */

.contact-form{
max-width:600px;
margin:0 auto;
}

.form-group{
margin-bottom:20px;
}

.form-group label{
display:block;
margin-bottom:6px;
font-weight:600;
}

.contact-form input,
.contact-form textarea{

width:100%;
padding:10px;
border:1px solid #ccc;
border-radius:4px;

}

.form-group input:focus,
.form-group textarea:focus{

outline:none;

border-color:var(--accent-color);

background:white;

box-shadow:0 0 0 3px rgba(59,130,246,0.15);

}

.required{

color:#e11d48;
font-size:12px;

}

.form-submit{

text-align:center;
margin-top:30px;

}

.contact-form button{

display:block;
margin:30px auto;

background:var(--main-color);
color:#ffffff;

padding:14px 36px;

font-size:16px;
font-weight:600;

border:none;
border-radius:6px;

cursor:pointer;

transition:0.3s;

}

.contact-form button:hover{
background:var(--accent-color);
}

footer{

color:white;
padding:40px 0 0;

}

.footer-inner{

text-align:center;

}

.footer-links{

margin:15px 0;

}

.footer-links a{

color:white;
text-decoration:none;
margin:0 12px;
font-size:14px;

}

.footer-links a:hover{

text-decoration:underline;

}

.footer-copy{

font-size:13px;
opacity:.8;

}
/* privacy */

.privacy{

max-width:800px;
margin:40px auto;
text-align:left;

}

.privacy p{
max-width: 760px;
text-align: left;
margin-bottom:16px;

}

.privacy h3{

margin-top:30px;
font-size:18px;
color:var(--main-color);
text-align: left;
}

.privacy ul{

margin-top:10px;
padding-left:40px;

}

.privacy li{

margin-bottom:6px;

}

.site-footer{

background:var(--accent-color);
color:#ffffff;
font-size:14px;

}

.footer-row{

display:flex;
align-items:flex-start;
justify-content:space-between;

padding:25px 0;

gap:30px;

}

/* 左：メニュー */

.footer-nav{

flex:3;
display:flex;
flex-wrap:wrap;

gap:18px;

}

.footer-nav a{

color:#ffffff;
text-decoration:none;

}

.footer-nav a:hover{

text-decoration:underline;

}

/* 右：会社情報 */

.footer-company{

flex:1;
text-align:right;

}

.footer-company p{

margin:0;
line-height:1.6;

}

/* 下段 */

.footer-bottom{

border-top:1px solid rgba(255,255,255,0.2);
background:var(--main-color);

text-align:center;

padding:12px 0;

font-size:13px;

}


.pc {
   display: block;
}
.sp {
   display: none;
}



@media (max-width:768px){

.pc {
   display: none;
}
.sp {
   display: block;
}


.hero {
    padding: 120px 0;
    text-align: center;
    background-size: cover;
    background-position: bottom center;
    background-position-y: 0px;
}


.company-table th {
    width: 100px;
}

.footer-row{

flex-direction:column;

}

.footer-company{

text-align:left;
margin-top:10px;
padding-left: 24px;

}

}